http://my.oschina.net/youranhongcha/blog/226274

3.1.1 为intent添加FLAG_EXCLUDE_STOPPED_PACKAGES标记

对应的代码为:

?
1
intent = new Intent(intent);// By default broadcasts do not go to stopped apps.intent.addFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES);

为什么intent要添加FLAG_EXCLUDE_STOPPED_PACKAGES标记呢?原因是这样的,在Android 3.1之后,PKMS加强了对“处于停止状态的”应用的管理。如果一个应用在安装后从来没有启动过,或者已经被用户强制停止了,那么这个应用就处于停止状态(stopped state)。为了达到精细调整的目的,Android增加了2个flag:FLAG_INCLUDE_STOPPED_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES,以此来表示intent是否要激活“处于停止状态的”应用。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * If set, this intent will not match any components in packages that
 * are currently stopped.  If this is not set, then the default behavior
 * is to include such applications in the result.
 */
public static final int FLAG_EXCLUDE_STOPPED_PACKAGES = 0x00000010;
/**
 * If set, this intent will always match any components in packages that
 * are currently stopped.  This is the default behavior when
 * {@link #FLAG_EXCLUDE_STOPPED_PACKAGES} is not set.  If both of these
 * flags are set, this one wins (it allows overriding of exclude for
 * places where the framework may automatically set the exclude flag).
 */
public static final int FLAG_INCLUDE_STOPPED_PACKAGES = 0x00000020;

从上面的broadcastIntentLocked()函数可以看到,在默认情况下,AMS是不会把intent广播发给“处于停止状态的”应用的。据说Google这样做是为了防止一些流氓软件或病毒干坏事。当然,如果广播的发起者认为自己的确需要广播到“处于停止状态的”应用的话,它可以让intent携带FLAG_INCLUDE_STOPPED_PACKAGES标记,从这个标记的注释可以了解到,如果这两个标记同时设置的话,那么FLAG_INCLUDE_STOPPED_PACKAGES标记会“取胜”,它会覆盖掉framework自动添加的FLAG_EXCLUDE_STOPPED_PACKAGES标记。

为intent添加FLAG_EXCLUDE_STOPPED_PACKAGES标记相关推荐

  1. 为pony程序添加IACA标记(二)

    在上一篇文章介绍了一种加IACA标记的方法,但使用还是很麻烦,所以我尝试修改pony编译器,直接增加了IACA支持,目前代码在iaca分支. 使用方法 因为还没发PR到上游,所以要自己克隆编译. gi ...

  2. Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部)

    Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部) 目录

  3. Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签、用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部)

    Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签.用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部) ...

  4. ZedGraph怎样在双击图形后添加箭头标记

    场景 在ZedGraph的曲线图上,双击图时会在图形上生成箭头符号标记. 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...

  5. 百度地图添加文本标记

    添加文本标记 还是很有用处的   用来给我们的地图上进行标记  然后给用户一些提示啥的 这个百度直接给我  封装好了 api 直接调用就显示出来了   官网介绍也很清晰  我在自己的博客中保存一份然后 ...

  6. 【android】3.0以后系统给广播默认加上FLAG_EXCLUDE_STOPPED_PACKAGES标记

    // By default broadcasts do not go to stopped apps. intent.addFlags(Intent.FLAG_EXCLUDE_STOPPED_PACK ...

  7. GIS(一)——在js版搜索地图上添加Marker标记

    由于我们做的是有关于旅游方面的项目,所以涉及到了地图功能.我接到的其中一个任务就是,在地图上显示指定的几个景点,并在地图上加上标记. 我们项目用的是搜狗地图,使用的是js版本.大家有兴趣的话,可以参考 ...

  8. excel透视表无添加字段_在Excel数据透视表中添加过滤器标记

    excel透视表无添加字段 If you're using Excel 2007 or Excel 2010, you can quickly see which fields in a pivot ...

  9. 如何给h2添加php标记,如何为所有h2标签添加数字 - WordPress - srcmini

    我有一个Wordrpess网站.我想为所有帖子在" h2标签"中添加一个数字 我的帖子格式: text text text text text text ... ... 我要这个: ...

最新文章

  1. 启动子级时出错_减速机安装与使用时需注意的八个要点,细节很重要!
  2. 靠纯技术是否能渡过中年危机
  3. Windows Vista Beta 1试用体会
  4. 目标跟踪_MeanShift
  5. 修改Linux字体出现乱码
  6. Web之间跳转和信息共享、Servlet的三大作用域对象、动态网页JSP
  7. sublime运行python代码,如何从Sublime Text 2运行Python代码?
  8. MySQL · 引擎介绍 · Sphinx源码剖析(二)
  9. java web-inf_对JavaWeb项目中WEB-INF目录的理解
  10. 什么程序员最易找工作? 十大热门语言大汇集
  11. 微信小程序——云开发入门
  12. 在手机/平板上安装kali系统
  13. 计算机微信接收excel打不开怎么回事,电脑端微信打不开怎么解决
  14. 6.26 Python小记**args** kwargs
  15. 项目管理软件Redmine
  16. SPFA算法(最短路径)
  17. 路由及路由器工作原理深入解析1:概述
  18. Ordinal numeral
  19. Mac下手动安装SafariDriver extension
  20. 丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟

热门文章

  1. EPICS modbus模块驱动程序示例2(模拟量)
  2. windows 下用开源流媒体压力测试工具 rtmpstress 测试RTMP媒体服务器负载性能
  3. 机器人被挠脚心_《fm及机器人系列(tk)》专题
  4. Anaconda点开一直处于loading application状态
  5. 北大计算机系工业设计考研,2019北京大学工学院工业设计工程考研经验分享
  6. 易基因|新品:新型肿瘤标志物检测利器——cfDNA甲基化测序(cfDNA-RBS)
  7. C# 25. 获取windows串口号对应的串口(设备)名称
  8. 老九学堂数据结构与算法章节1课堂笔记
  9. Adobe2023全家桶win及Mac系统安装包下载及安装教程ps、pr、ai、ae安装包下载
  10. 每周一计-自己动手做的电源