android - 在 AndroidManifest.xml 中单独使用 intent.category.HOME 与同时使用 intent.category.DEFAULT 之间的区别

标签 android android-intent android-manifest

有什么区别:

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

和:

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

最佳答案

在这里查看答案

What is the meaning of android.intent.action.MAIN?

android.intent.action.MAIN表示此 Activity 是应用程序的入口点,即当您启动应用程序时,会创建此 Activity 。

来自docs

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

此外,来自 here

Activity Action Start as a main entry point, does not expect to receive data.

android.intent.category.DEFAULT 主要用于隐式 Intent 。如果您的 Activity 希望通过隐式 Intent 启动,它应该在其过滤器中包含此类别。 如果您的 Activity 可能在没有指定特定类别的情况下由隐式 Intent 启动,则其 Intent 过滤器应包含此类别。

查看文档..

  1. http://developer.android.com/reference/android/content/Intent.html
  2. http://developer.android.com/guide/topics/manifest/action-element.html

和@CommonsWare 的另一种观点....在那个答案中也......看到它

所以ACTION_MAIN被视为应用程序的入口点。

通常与CATEGORY_LAUNCHER结合使用在<intent-filter>指示应出现在主屏幕启动器或任何其他认为自己是启动器的 Activity 中。这样的“启动器”可以查询PackageManager , 使用 queryIntentActivities() , 以找到此类 Activity 并将其显示给用户。

然而,ACTION_MAIN可以与其他类别结合用于其他专门用途。例如,CATEGORY_CAR_DOCKACTION_MAIN表示当用户将手机放入制造商提供的车载底座时应被视为候选对象的 Activity 。

IntentstartActivity() 一起使用, 如果 Intent尚未放入类别,已放入 CATEGORY_DEFAULT .因此,一个 <activity> <intent-filter>需要指定一些 <category> , 使用 <category android:name="android.intent.category.DEFAULT" />如果没有别的。

关于android - 在 AndroidManifest.xml 中单独使用 intent.category.HOME 与同时使用 intent.category.DEFAULT 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500649/

相关文章:

java - Android Studio 1.2.2 - junit - json 为空,为什么?

android - finish() 有时无法正常工作

android - AndroidManifest.xml 中是否可以使用相对包名称?

android - 找不到 manifest-merger.jar

java - Android Espresso 执行点击第一个匹配项

java - 如何通过Java代码设置操作栏按钮图标

android - Activity exported=false 在 Activity 选择器中列出

java - ANDROID 扫描二维码后如何在新 Activity 中发送结果?

AndroidManifest.xml

android - ConstraintLayout 作为 RecyclerView 项目