gpt4 book ai didi

java - 不同的 Intent 构造函数有什么作用?

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:43 26 4
gpt4 key购买 nike

Intent(String action, Uri uri)
Create an intent with a given action and for a given data url.

Intent(Context packageContext, Class<?> cls)
Create an intent for a specific component.

Intent(String action, Uri uri, Context packageContext, Class<?> cls)
Create an intent for a specific component with a specified action and data.

虽然这对某些人来说可能是显而易见的,但你们能帮助我们这些难以“理解”的人吗?

例如,在什么情况下我希望 1 优于另一个?

最佳答案

有两种类型的 Intent :

  • Explicit intents 指定要以名称开头的组件(完全限定的类名)。您通常会使用显式 Intent 在您自己的应用程序中启动组件,因为您知道要启动的 Activity 或服务的类名。例如,启动新 Activity 以响应用户操作或启动服务以在后台下载文件。
  • Implicit intents 不要命名特定组件,而是声明要执行的一般操作,这允许来自另一个应用程序的组件来处理它。例如,如果您想向用户显示 map 上的位置,您可以使用隐式 Intent 请求另一个有能力的应用程序在 map 上显示指定位置。

当您创建启动 Activity 或服务的显式 Intent 时,系统会立即启动 Intent 对象中指定的应用程序组件。

当您创建隐式 Intent 时,Android 系统会通过将 Intent 的内容与设备上其他应用的 list 文件中声明的 Intent 过滤器进行比较来找到合适的组件来启动。如果 Intent 与 Intent 过滤器匹配,系统将启动该组件并向其传递 Intent 对象。如果多个 Intent 过滤器兼容,系统会显示一个对话框,以便用户选择要使用的应用。

阅读更多信息: Intents and Intent Filters


回到您的问题,所有这三种结构都是创建隐式/显式 Intent 的方法。在哪里

  • Intent(String action, Uri uri)创建一个 implicit intent使用给定的操作和 uri。

  • Intent(Context packageContext, Class<?> cls)创建一个明确的 Intent 。

  • Intent(String action, Uri uri, Context packageContext, Class<?> cls)使用给定的操作和 uri 创建一个明确的 Intent 。

关于java - 不同的 Intent 构造函数有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29026009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com