15

我在我的应用程序清单文件中定义了这些类别:

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

如果我删除该行 -

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

它不会影响应用程序功能的任何部分,我可以在我的 android 设备的主屏幕启动器列表中看到我的应用程序。

但是,如果我删除最后一行 -

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

我看到我的应用程序从我的 android 设备的主屏幕启动器列表中消失的变化。

所以我的问题是这个类别 HOME 的目的是什么,它的常见用途是什么。

如果此类别的唯一目的是启动android 文档中提到的主屏幕,那么我也可以通过以下方式做到这一点:

Intent homeIntent= new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homeIntent);
4

1 回答 1

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

表示当您按下主页按钮时,您的应用程序将被列为启动启动器主页或主页活动的选项(以及在活动清单中具有此类别的所有应用程序)。更简单地说,每当您按下主页按钮时,您的手机中安装的所有应用程序都将在其 AndroidManifest.xml 中的 Intent-filter 中包含 CATEGORY.HOME 类别和 Action_Main (除非您选择了某些应用程序作为默认应用程序)供用户选择要启动的 HOME 的选择器。

于 2013-07-11T10:55:01.727 回答