当前位置:首页 > 开发 > 移动开发 > 正文

Android4.0系统接收不到广播的问题解析

发表于: 2014-09-17   作者:bogongjie   来源:转载   浏览次数:
摘要: 在3.1之后,系统的package manager增加了对处于“stopped state”应用的管理,这个stopped和Activity生命周期中的stop状态是完全两码事,指的是安装后从来没有启动过和被用户手动强制停止 的应用,与此同时系统增加了2个Flag:FLAG_INCLUDE_STOPPED_PACKAGES和 FLAG_EXCLUDE_STOPPED_PACKAGES ,来标识一个

在3.1之后,系统的package manager增加了对处于“stopped state”应用的管理,这个stopped和Activity生命周期中的stop状态是完全两码事,指的是安装后从来没有启动过和被用户手动强制停止 的应用,与此同时系统增加了2个Flag:FLAG_INCLUDE_STOPPED_PACKAGES和 FLAG_EXCLUDE_STOPPED_PACKAGES ,来标识一个intent是否激活处于“stopped state”的应用。当2个Flag都不设置或者都进行设置的时候,采用的是FLAG_INCLUDE_STOPPED_PACKAGES的效果。

    有了上面的新机制之后,google觉得给所有的广播intent默认加上FLAG_EXCLUDE_STOPPED_PACKAGES会非常的 Cooooool,能在一定程度上避免流氓软件、病毒啊干坏事,还能提高效率,就导致了本文题目中说的问 题,RECEIVE_BOOT_COMPLETED广播如果用户没有运行过应用,就不会响应了。

    不过google还是留了点余地,对于自定义的广播我们可以通过

setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);这个方法来唤醒处于“stopped state”的程序,也就是用户自己写的广播intent可以控制这个机制,但是系统自带的广播intent,由于不能修改,就只能接受这个现实了

例如:

Intent startIntent = new Intent();
    startIntent.putExtra("pkg", getPackageName());
    startIntent.setAction("com.lenovo.speechcamera.start");
    startIntent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    sendBroadcast(startIntent);

 

本文转载:

http://blog.csdn.net/roserose0002/article/details/8086535

Android4.0系统接收不到广播的问题解析

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
除了接受用户发送的广播之外,BroadcastReceiver还有一个重要的用途:接收系统广播。如果应用需要在
导读:本文说明系统发送广播的部分流程,如何利用Intent查找到对应接收器。我们依然只关注接收器的
导读:本文说明系统发送广播的部分流程,如何利用Intent查找到对应接收器。我们依然只关注接收器的
导读:本文说明系统发送广播的部分流程,如何利用Intent查找到对应接收器。我们依然只关注接收器的
导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对
导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对
导读:本文说明系统是如何注册动态广播以及静态广播,这里主要注意其注册的顺序 这篇文章主要是针对
发送端: 1: /* 2: * =========================================================================
1.广播接收者 广播接收者简单地说就是接收广播意图的Java类,此Java类继承BroadcastReceiver类,重
广播接收者( Broadcast Receiver )用于已读接收广播 Intent ,而广播 Intent 的发送是通过调用 Co
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号