清单中的“类别”是什么意思?

时间:2011-07-21 21:08:23

标签: android categories

documentation表示您可以指定自定义类别。

  • 你何时,为何以及如何做到这一点?
  • 它有什么用?

4 个答案:

答案 0 :(得分:18)

我理解它的方式,类别是Android操作系统(和其他应用程序)的公共指令,代表了应用程序应该属于的不同类别。

实施例

  • 当在主屏幕上点击启动器图标时,主应用程序会查看每个已安装的应用程序的HOME类别的清单 - 如果是,则会在应用程序抽屉中显示它。

然而,还有更多。您可以在应用程序清单中指定类别,以使系统知道您的应用程序可以处理意图类别。例如,通过设置ALTERNATIVE类别,系统中的其他应用程序知道您的应用可以处理该类别而无需专门知道操作名称!在以下示例中,自定义意图类别通过此intent传递,该intent被过滤并编辑相应的对象(取自Notes示例应用程序):

<intent-filter android:label="@string/resolve_title">
 <action android:name="com.android.notepad.action.EDIT_TITLE" />
 <category android:name="android.intent.category.DEFAULT" />
 <category android:name="android.intent.category.ALTERNATIVE" />
 <category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
 <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
</intent-filter>

通过在<activity />标记中注册此意图过滤器,您可以编辑“注释”。意图数据将包含注释,意图将被路由到此过滤器注册的活动。

结论:

您使用自定义类别的原因并不存在。它们适用于Android,因此在应用程序使用时没有任何意义。但是,如果您选择使用它们,则可以在上述方法中使用它们。 “它们提供了一些特定的语义规则,如果这些规则对你有用,那么随意使用它们”(Hackbod)。

答案 1 :(得分:4)

http://developer.android.com/guide/topics/intents/intents-filters.html

向下滚动一下,您应该会在“意图对象”

下看到一个部分

它们基本上描述了某项活动的某些特殊属性。例如,添加

<category android:name="android.intent.category.HOME" />

表示可以在手机启动时启动应用

答案 2 :(得分:2)

我仍然是Android的菜鸟,虽然我有编程经验,但它说自定义类别in your own namespace。我猜测,如果您正在编写多个应用程序并且您希望一个应用程序运行另一个应用程序,您可以使用自定义类别来强制手机找到您的其他应用程序来捕获意图吗?

答案 3 :(得分:2)

如果您不想使用默认类别,请使用自定义类别。 自定义类别应使用包名称作为前缀,以确保它们是唯一的。 以下链接提供了一些信息:
http://developer.android.com/guide/topics/manifest/category-element.html 检查以下链接它有一些相同的问题:
Android custom categories