Java 意图类别的目的是什么?
有人能给我解释一下Java 意图类别的目的是什么?,java,android,android-intent,Java,Android,Android Intent,有人能给我解释一下Intent类别的目的吗?我应该什么时候做我自己的等等?在我的书中,关于Intent类别所写的唯一一件事就是它们可以对意图进行分组?类别本身是无用的,它们被用来描述Intent过滤器中的一个可能目标 当您知道要启动并使用startActivity()或startActivityForResult()的类/活动时,它被称为“显式意图” 这里有一个关于隐含意图如何工作的类比: 想象一下,所有的应用程序都坐在一个大房间里,什么也不做。 然后,另一个应用程序,比如Dropbox,需要有
Intent
类别的目的吗?我应该什么时候做我自己的等等?在我的书中,关于Intent
类别所写的唯一一件事就是它们可以对意图进行分组?类别本身是无用的,它们被用来描述Intent过滤器中的一个可能目标
当您知道要启动并使用startActivity()
或startActivityForResult()
的类/活动时,它被称为“显式意图”
这里有一个关于隐含意图如何工作的类比:
想象一下,所有的应用程序都坐在一个大房间里,什么也不做。
然后,另一个应用程序,比如Dropbox,需要有人打开
PDF文件。Dropbox应用程序进入系统并说“嘿,有人吗
需要打开此PDF文件…”(这是发送隐式意图)
现在,系统进入房间并大喊“你们中的哪一个可以?”
是否显示PDF文件?”。可以站立的应用程序和
系统会看到它们(这些应用程序的活动具有匹配的
意图类别)
然后,它会为您提供一个对话框,您可以在其中选择以下选项之一:
应用程序:
如果你想让你的一些活动/广播接收器/服务在你的应用程序范围之外可用,你可以使用Android清单向它声明一个“意图过滤器”,这样当系统或应用程序启动一个匹配的“隐式意图”时,它就会被打开
您可以对应该从启动器打开的活动执行以下操作(例如):
<activity android:name=".SomeActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
-由Androids启动器()触发的操作
“意图过滤器”中有两个子元素:
操作
。这指定了“意图过滤器”应该执行的操作
听我说
一个或多个类别
s。这将指定活动应如何进行
打电话来
其中一个类别可以是(例如)android.intent.category.DEFAULT
,它告诉活动以全屏模式正常启动。例如,android.intent.category.TAB
-category将此活动声明为中的选项卡,因此它只能作为选项卡打开
另一个例子是添加android.intent.category.PREFERENCE
-category,它将活动声明为您的设置活动
声明您自己的类别
s既不可能也不必要
此外,您还需要了解这些事件是由系统/另一个应用程序触发的,您只能指定触发事件时是否以及如何作出反应。您忘了提到CATEGORY_DEFAULT,它是根据uri数据方案/主机模式匹配意图所需的。offTopic:我们可以使用categories应用程序名称吗根据android中的意图分类