意向类别的用途是什么?
有人可以解释一下类别的目的吗?我应该什么时候自己做等等?在我的书中,关于类别的唯一一件事是他们可以对意图进行分组。Intent
Intent
有人可以解释一下类别的目的吗?我应该什么时候自己做等等?在我的书中,关于类别的唯一一件事是他们可以对意图进行分组。Intent
Intent
类别本身是无用的,它们用于描述中“隐式意图”的可能目标。intent-filter
当您知道要启动和使用哪个类/活动或 时,它被称为“显式意图”。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启动器(CATEGORY_LAUNCHER
)触发的ACTION_MAIN
操作。
您的“意向过滤器”中有两个子元素:
action
category
其中一个可以是(例如),它告诉活动在全屏模式下正常启动。例如,-category 将此活动声明为 TabActivity 中的选项卡
,因此它只能作为选项卡打开。category
android.intent.category.DEFAULT
android.intent.category.TAB
另一个示例是添加 -类别,这会将活动声明为“设置-活动”。android.intent.category.PREFERENCE
声明你自己的s是可能的。category
然而,这很少有用。有关更多详细信息,请参阅此问题:自定义类别或操作的用途是什么?