我在应用程序清单文件中定义了这些类别:
<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);
答案 0 :(得分:23)
<category android:name="android.intent.category.HOME"/>
表示当您按下主页按钮时,您的应用程序将被列为启动启动器主页或您的主页活动的选项(以及在其活动清单中具有此类别的所有应用程序)。更简单的是,每当您按下主页按钮时,将列出手机中安装的所有应用程序,其中包含CATEGORY.HOME类别和在其AndroidManifest.xml中的intent-filter中的Action_Main(除非您选择了某些应用程序作为默认应用程序)一个选择器,供用户选择他们想要启动的HOME。