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

Suc*_*chi 12 android categories

文件说,你可以指定一个自定义类别.

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

hwr*_*kns 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>
Run Code Online (Sandbox Code Playgroud)

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

结论:

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

  • 实际上没有"您自己的类别"或"自定义类别".与动作一样,这些只是字符串,位于全局Universe范围的命名空间中.平台在android.*命名空间中定义了一些标准的Intent协议,但它们并没有什么特别之处.它们提供了一些特定的语义规则,如果这些规则对您有用,那么请随意使用它们......请记住,您需要将它们放在您自己的命名空间中. (3认同)

Kev*_*Qiu 5

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

向下滚动一点,您应该会在“意图对象”下看到一个部分

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

<category android:name="android.intent.category.HOME" />
Run Code Online (Sandbox Code Playgroud)

意味着该应用程序可以在手机启动时启动