`

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

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

在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);
分享到:
评论

相关推荐

    ICS android4.0源代码

    通过分析这些源代码,开发者可以学习到Android系统如何管理活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供者(Content Provider),理解系统级的事件处理机制,如触摸事件和...

    android4.0 联系人源代码

    总的来说,分析Android 4.0联系人源代码能够帮助开发者深入理解Android系统中数据管理、组件交互、UI设计以及性能优化等方面的知识,这对于开发自己的Android应用,特别是涉及用户数据的应用,具有很高的参考价值。...

    android4.0短信源码

    在Android 4.0(Ice Cream Sandwich)系统中,短信服务是通过Mms( Multimedia Messaging Service )组件来实现的。Mms服务不仅处理文本短信,还包括了多媒体信息,如图片、音频和视频等内容的发送与接收。让我们深入...

    张泽华android4.0源代码

    通过张泽华的Android 4.0源代码解析,开发者不仅可以掌握Android开发的基础,还能深入理解系统底层的工作原理,这对于进行高级定制或优化应用性能至关重要。结合实际的项目实践,这份代码将是一份宝贵的参考资料。

    Android 4.0 源码

    通过研究Android 4.0的源码,开发者可以学习到系统级别的编程技巧,理解Android系统的运行机制,并且能够为优化应用性能、开发自定义系统或模块提供坚实的基础。源码的探索不仅限于上述内容,还包括了各种服务、广播...

    android4.0蓝牙串口源码

    8. **源码分析**:实际源码中可能包含了服务(`Service`)来管理蓝牙连接,以及广播接收器(`BroadcastReceiver`)来监听蓝牙状态变化。还可能有专门的线程来处理读写操作,以避免阻塞UI主线程。 9. **设备发现与...

    Android高级应用源码-android 零权限发送短信,支持android 4.0以上版本。.zip

    【标题】中的“Android高级应用源码-android 零权限发送短信,支持android 4.0以上版本”指的是一个Android应用程序,它具有在无需获取系统级短信发送权限的情况下发送短信的功能。这一特性对于某些场景非常有用,...

    android4.0版本以上对Home键从底层拦截操作

    在Android 4.0及以上版本中,系统通过广播发送`ACTION_CLOSE_SYSTEM_DIALOGS`意图,当检测到Home键被按下时,这个意图就会被触发。开发者可以通过注册一个BroadcastReceiver来监听这个意图,并根据其中携带的信息...

    Android4.0通话流程总结+呼入+呼出+状态改变+UI发AT命令+远程挂断+本地挂断.rar

    以下是对这个压缩包文件中涉及的Android 4.0通话流程的详细解析: 1. **通话流程概述**: Android 4.0的通话流程包括呼入、呼出、通话状态改变、AT命令的发送以及远程和本地挂断等关键环节。这些流程通常由多个...

    android-support-4.0.jar.

    9. **BroadcastReceiver**: 在低版本Android上,Support Library提供了注册和接收广播的兼容方式,使得开发者能够更好地管理和响应系统事件。 10. **其他的工具类和接口**: 如SharedPreferencesCompat、...

    android40.原生代码

    分析系统应用的权限设置,可以帮助开发者更好地控制自己的应用权限。 8. **异步任务(AsyncTask)**:在Android 4.0中,AsyncTask是一种处理后台任务的常用方式,特别是在UI线程中需要更新结果的情况下。原生代码中...

    安卓wifi蓝牙相关-Adnroid4.0BLE连接以及数据传输.rar

    - 发现设备:接收到设备的广播包后,解析其中的信息,如设备名、MAC地址、UUID等。 - 建立连接:找到目标设备后,使用`BluetoothGatt.connect()`建立连接。 - 配置服务:连接成功后,调用`BluetoothGatt....

    蓝牙4.0,打通双向传输

    - **解析数据**:接收到的数据需要被正确解析才能用于特定应用。例如,运动手环传来的健康数据需要被手机应用程序解析并展示给用户。 4. **应用示例** - **健康监测**:智能手环可以实时监测心率,并通过蓝牙4.0...

    android-14 sdk

    2. **核心库**:SDK包含了一组核心库,允许开发者访问Android系统的各种服务和功能,如活动(Activity)、广播接收器(Broadcast Receiver)、服务(Service)以及内容提供者(Content Provider)等。 3. **开发...

    安卓音乐播放器源码

    综上所述,这个“安卓音乐播放器源码”提供了学习和实践上述技术的平台,对于初学者来说,这是一个了解安卓多媒体处理、服务、广播接收器和UI设计的绝佳实例。通过深入研究和修改这个源码,你可以更好地掌握安卓开发...

    Android应用程序开发源代码

    3. **BroadcastReceiver**:广播接收者可以监听系统或自定义广播事件,并在接收到广播时执行相应的操作。 4. **ContentProvider**:内容提供者用于在应用之间共享数据,比如联系人、日历等。 5. **Intent**:意图...

    Android BLE4应用1

    在实际应用中,例如Beacon设备,它使用ADV_NONCONN_IND广播类型持续发送预设的数据包,这些数据包含特定格式的信息,如设备ID和信号强度,允许其他设备(通常是中心设备)在不建立连接的情况下接收和解析这些信息,...

    Android中文API文档

    6. **BroadcastReceiver(广播接收器)**:广播接收器可以监听系统或应用发送的广播消息,例如网络状态变化、电池电量低等事件,从而做出响应。 7. **ContentProvider(内容提供者)**:ContentProvider用于在应用...

Global site tag (gtag.js) - Google Analytics