1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。

Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码:

Intent intent= new Intent(this, B.class)

Implicit Intent没有明确的指定要启动哪个Activity ,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。

2、intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data。

理论上来说,如果intent不指定category,那么无论intent filter的内容是什么都应该是匹配的。但是,如果是implicit intent,android默认给加上一个CATEGORY_DEFAULT,这样的话如果intent filter中没有android.intent.category.DEFAULT这个category的话,匹配测试就会失败。所以,如果你的 activity支持接收implicit intent的话就一定要在intent filter中加入android.intent.category.DEFAULT。

例外情况是:android.intent.category.MAIN和android.intent.category.LAUNCHER的filter中没有必要加入android.intent.category.DEFAULT,当然加入也没有问题。
我们定义的activity如果接受implicit intent的话,intent filer就一定要加上android.intent.category.DEFAULT这个category。

android.intent.category.LAUNCHER 具体有什么作用?我在xml里面加和不加 感觉没什么区别啊。谁能解释下!

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

一个应用程序可以有多个Activity,每个Activity是同级别的,那么在启动程序时,最先启动哪个Activity呢?有些程序可能需 要显示在程序列表里,有些不需要。怎么定义呢?android.intent.action.MAIN决定应用程序最先启动的Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里

因为你的程序可能有很多个activity 只要xml配置文件中有这么一个intent-filter,而且里面有这个launcher,那么这个activity就是点击程序时最先运行的那个activity。
现在你只有一个activity,那么加不加就没有关系了。

用于模拟器启动时设置为默认打开为的activity

原网页:http://2960629.blog.51cto.com/2950629/633988

android.intent.category.DEFAULT和LAUNCHER相关推荐

  1. 什么时候加上android.intent.category.DEFAULT和LAUNCHER

    转自:http://blog.csdn.net/ccccdddxxx/article/details/7843070 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什 ...

  2. (转)什么时候加上android.intent.category.DEFAULT和LAUNCHER

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  3. android之android.intent.category.DEFAULT的用途和使用

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  4. category android:name=android.intent.category.DEFAULT / 惹的祸

    今天我自己定义了Intent的Action,可在把这个Action写入manifest的时候,没有注意到需要加入<category android:name="android.inte ...

  5. (转)理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER

    其中Android.intent.action.MAIN 与 android.intent.category.LAUNCHER 决定应用程序在luncher中的显示方式: 两者的作用如下: andro ...

  6. 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Android 应用安装后 , 出现两个相同的启动图标 , 其中一个可以启动 , 另外一个启动后 , 直接崩溃 ; 卸载其中一个 , 会将整个应用卸 ...

  7. Android --- android.intent.action.MAIN 与 android.intent.category.LAUNCHER常用的几种情况

    第一种情况: 有MAIN,无LAUNCHER,程序列表中无图标 原因:android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 第二种情况: 无MAIN,有LA ...

  8. 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER

    android.intent.action.MAIN决定应用程序最先启动的Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 所以: 如 ...

  9. $ adb shell am start -n “com.***“ -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

    android studio 4.2.2 Kotlin运行apk报错提示: $ adb shell am start -n "com.demo.test/com.demo.test.Main ...

最新文章

  1. C语言面试基础知识整理
  2. ROS自定义地图(CAD、手绘等)
  3. rtx3080 pytorch cuda_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?|显卡|amd|RTX3080...
  4. ajax请求flask以后得到的响应查看
  5. Delphi中如何将一个extended型等实数强制转换为integer型
  6. 用python来获取Github IP地址
  7. Atitit js canvas的图像处理类库attilax总结与事业
  8. 定时任务corn表达式设置
  9. PSnbsp;08人物抠图
  10. vs2019python使用教程_vs2019安装和使用详细图文教程
  11. python当前时间获取_python 当前时间获取方法
  12. Java中undefined是什么意思,Haskell中的undefined和Java中的null有什么区别?
  13. 无线ap安全dhcp服务器,AC+AP时代——办公区内满足安全性又够人性化的WiFi漫游设置攻略...
  14. 计算机硬件系统维护经验与体会,计算机操作系统维护与优化的实训报告心得体会.docx...
  15. vaild-palindrome
  16. 复杂的1秒 图解Google搜索技术
  17. 横冲直撞html5,6系横冲直撞 5系列最后的疯狂
  18. 图像超分辨率重构实战
  19. 互联网招聘的阴阳两极
  20. 结构体 7.公共钥匙盒

热门文章

  1. python转go感觉难_读《我为什么从python转向go》的一些感受
  2. DOS常用网络相关命令
  3. win7安装git客户端和简单配置
  4. 银屑病与肠道菌群(调研手稿二)
  5. flink的TimeCharacteristic(转载)
  6. Hbase的WebUI中的RegionServers不显示集群机器域名
  7. linux下使用sed批量替换关键词(带斜杠处理+kaggle路径批量替换)
  8. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient 1
  9. 在mysql-workbench的存储过程中使用循环while,repeat,loop
  10. LibSVM 使用错误解决