文档章节

Android3.1后Boot_COMPLETED广播不响应的问题

中成才
 中成才
发布于 2014/12/06 17:19
字数 440
阅读 114
收藏 14

      在做Android开发时,很多应用由于各种目的,希望在机器启动时被唤醒,一般的做法是写一个BroadcastReceiver,接收对应的boot action,当然别忘了在Manifest中添加permission "android.permission.RECEIVE_BOOT_COMPLETED“。但是最近在做4.0开发时,有同事声称这个广播接收不到了,同时其他有人又说自己的能接收到,到底是怎么回事呢。

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

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

    不过google还是留了点余地,允许应用和后台服务通过给广播intent设置FLAG_INCLUDE_STOPPED_PACKAGES来唤醒处于“stopped state”的程序,也就是用户自己写的广播intent可以控制这个机制,但是系统自带的广播intent,由于不能修改,就只能接受这个现实了。

   

    在3.1的更新文档中,能够找到上述修改的说明:http://developer.android.com/sdk/android-3.1.html#launchcontrols


本文转载自:http://blog.csdn.net/alex_hx/article/details/7501374

中成才
粉丝 55
博文 130
码字总数 51165
作品 0
海淀
架构师
私信 提问
Android应用如何开机自启动、自启动失败原因

Android应用如何开机自启动、自启动失败原因 本文主要介绍Android应用如何开机自启动、自启动失败的原因、adb命令发送BOOTCOMPLETED。 问题:应用程序是否可以在安装后自启动,没有ui的纯ser...

LiSteven
2014/02/13
1K
0
Android开机广播android.intent.action.BOOT_COMPLETED

说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播就能监听开机。 2. 代码 <uses-permission android:name="android.permission.RECEIVEBOOTCOMPLETED......

jdroid
2014/06/19
24.1K
1
Android 开机自启动应用

Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED” 开机自启动程序,只需要“捕捉”到这个消息再启动你的程序即可...

长平狐
2013/01/06
164
0
Android 里的各种通信方式(四)

五:广播 Android开发中如果需要对两个完全没关系的程序之间进行通信就可以使用发送广播与接收广播的机制来实现 ,例如程序A发送了一个广播 程序B接受到 做一些事情 这样就达到了相互的通讯。...

博为峰教研组
2016/12/01
4
0
ACTION_BOOT_COMPLETED手机重启后广播机制问题

写了一个简单的程序测试android系统重启后的广播调用 public class ReBootReceive extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { AlertD......

sexants
2013/05/26
3.5K
2

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
27分钟前
5
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
28分钟前
3
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
31分钟前
7
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
35分钟前
5
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
48分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部