java – 意图类别的目的是什么?

有人可以解释我的意图类别的目的吗?什么时候应该做自己的等等?在我的书中唯一写的关于意图类别的是他们可以分组意图?
该类别是无用的,它们用于描述“implicit intent”在意图过滤器中的可能目标。

当您知道要启动哪个类/活动并使用startActivity()或startActivityForResult()时,它被称为“显式意图”。

这是一个类似于隐含意图的工作原理:

Imagine all your applications sitting in a big room and doing nothing.
Then, another application, let’s say Dropbox, needs someone to open a
PDF file. The Dropbox app goes to the system and says “Hey, somebody
needs to open this PDF file…” (This is sending the implicit intent).

The system now goes to the room and yells “Which one of you can
display a PDF file?”. The applications that can stand up and the
system sees them (these applications have an activity with a matching
intent category).

It then offers you a dialog, in which you can choose one of the
applications: Complete action using

如果您希望在您的应用程序范围之外提供一些您的Activity / BroadcastReceivers / Services,您可以使用Android Manifest向其声明“意图过滤器”,以便系统或应用程序启动“隐式意图“匹配。

您可以对应该从启动器打开的Activity进行此操作(例如):

<activity android:name=".SomeActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

这听取了由Androids Launcher(CATEGORY_LAUNCHER)触发的ACTION_MAIN操作。

您的“意图过滤器”中有两个子元素:

>动作。这指定了“意图过滤器”应该采取什么行动
听。
>一个或多个类别。这规定了活动应该如何
调用。

其中一个类别可以是(例如)android.intent.category.DEFAULT,它告诉Activity在全屏模式下正常启动。 android.intent.category.TAB类别例如将此活动声明为TabActivity中的选项卡,因此它只能作为Tab打开。

另一个例子是添加android.intent.category.PREFERENCE类别,它会将活动声明为您的设置 – 活动。

声明自己的类别既不可能也不必要。

此外,您需要了解这些事件是由系统/另一个应用程序触发的,您只能指定触发时是否以及如何反应。

http://stackoverflow.com/questions/7365732/what-are-the-purpose-of-intent-categories

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 意图类别的目的是什么?