为什么需要HOME类别?

时间:2013-07-11 09:47:09

标签: android android-intent android-manifest

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

<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 docs中所述启动主屏幕,那么我也可以通过以下方式执行此操作:

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

1 个答案:

答案 0 :(得分:23)

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

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

相关问题