android - 为什么需要类别 HOME?

标签 android android-intent android-manifest

<分区>

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

<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);

最佳答案

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

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

关于android - 为什么需要类别 HOME?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590204/

相关文章:

android - 使用方案打开android应用程序不起作用

android - 为动态创建的元素创建 XML

android - android中MVP的优势

android - 将位图保存到文件功能

位图的 Android 共享 Intent - 是否可以在共享之前不保存它?

javascript - 如何在使用 manifest.json 时允许方向旋转?

android - 我正在将我的启动 Activity 从 "MainActivity"更改为 "RealMain"我在 list 中声明了这个但可惜 MainActivity

java - 意外调用 LoginManager.onActivityResult Facebook SDK v3.2

Android MapView 投影返回负数

android - 如何使用自定义链接打开我的 Android 应用程序?