最近在项目中需要实现开机启动一个应用中的服务功能,果断在manifest中注册静态广播Receiver,

<receiver android:name=".broadcast.RestartServiceReceiver"><intent-filter><action android:name="com.centerm.lklapplicationshop.restartservice"/><action android:name="android.intent.action.BOOT_COMPLETED"/></intent-filter></receiver>

记得在manifest中添加相应权限,

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

运行后,强制停止应用,然后重启。结果开机后并没有启动服务。检查代码没什么问题,一番纠结后,终于找到了原因:

原来,在3.1之后,系统的PackageManager增加了对处于“stopped state”应用的管理,这里的stopped和Activity生命周期中的stop状态是两回事,

PackageManager中“stopped state”指的是安装后从来没有启动过或者被用户强制停止的应用,系统中通过两个flag

FLAG_INCLUDE_STOPPED_PACKAGESFLAG_EXCLUDE_STOPPED_PACKAGES ,来标识一个intent是否激活处于“stopped state”的应用,当两个Flag都不设置或者都进行设置的时候,采用的是FLAG_INCLUDE_STOPPED_PACKAGES的效果。有了上面的新机制之后,Google觉得给所有的广播intent默认加上FLAG_EXCLUDE_STOPPED_PACKAGES会非常的Cool,能在一定程度上避免流氓软件、病毒啊干坏事,还能提高效率,就导致了RECEIVE_BOOT_COMPLETED广播如果用户没有运行过应用或者在设置中强行停止了应用,就不会接收到BOOT_COMPLETED广播。

关于Android中开机启动服务相关推荐

  1. android+启动脚本,imx6q android 添加开机启动脚本

    1.在xx/out/target/product/sabresd_6dq/root/init.rc中添加以下内容 ========================================== ...

  2. Android Q 开机启动流程

    https://www.it610.com/article/1304931662924124160.htm Android Q 开机启动流程 开机启动概述: step 1: 上电开机 长按power键 ...

  3. linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式

    Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...

  4. CentOS 7添加开机启动服务/脚本

    CentOS 7添加开机启动服务/脚本 一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins. ...

  5. linux自定义开机启动服务和chkconfig使用方法

    文章转载! linux自定义开机启动服务和chkconfig使用方法 1. 服务概述 在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动, ...

  6. Android 系统(215)---Android O_GO后台启动服务改动

    Android O_GO后台启动服务改动 Android O_GO后台启动服务改动 1. 问题现象 应用在适配Android O/GO的系统时,会发现后台启动不了服务,会报出如下异常,并强退: jav ...

  7. linux开机启动服务详解

    http://blog.163.com/sjt_linux/blog/static/19931031920126295452884/ linux开机启动服务详解(转) 2012-07-29 17:45 ...

  8. vivo显示android设备登录,android中的后台服务没有运行oppo,vivo等设备

    我想在后台运行服务,即使应用程序从堆栈中死亡.此功能在某些设备上正常工作.但在OPPO和vivo手机中,如果应用程序被杀,它将不会运行.有没有解决方案.如果没有,那么我如何打开允许屏幕.android ...

  9. centos 开机启动java_Centos 7将java jar包自定义开机启动服务

    Centos 7将java jar包自定义开机启动服务 1. 先上 jar包的启动脚本 vim service.sh #!/bin/bash # 需要变更的参数 # 先查看java绝对路径:which ...

  10. Android中Activity启动模式

    Android中Activity启动模式一共是四种,这里我写一下我对其的理解: 1.standard(默认) 2.singleTop,如果某个Activity设置了该属性,且当前Activity就是这 ...

最新文章

  1. 以下关于python缩进_Python 的缩进是不是反人类的设计?
  2. 脑科学研究:对于学习来说,休息可能与练习同样重要...
  3. 专家支招:手把手教你如何选型移动CRM
  4. 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
  5. 细学PHP 08 数组-2
  6. 反向算法_10分钟带你了解神经网络基础:反向传播算法详解
  7. spring boot整合cxf发布和调用webservice
  8. vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
  9. 下载python流程-Python编写win程序的操作流程
  10. 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
  11. Spinnaker:云原生多云环境持续部署的未来
  12. Wincc安装教程+破解教程(包括软件下载链接——百度网盘)
  13. pc端+移动端电商源码
  14. Two Cylinders (辛普森公式处理积分)
  15. 不从SD卡启动树莓派2
  16. C/C++外卖点餐管理程序
  17. 鹏业安装算量软件识别电气系统图(表格式)
  18. java jmf获取图像_java利用jmf实现拍照功能
  19. pymysql.err.OperationalError: (1054, “Unknown column ‘xxx‘ in ‘where clause‘“)问题解决方法
  20. ofdm系统matlab仿真,基于Simulink 的OFDM 系统仿真分析

热门文章

  1. 华三交换机ping不通用户但用户_华三交换机ping不通路由器
  2. python学习之——假人配对
  3. arcgis制图汇总
  4. MySQL数据分析实战-朱元禄-专题视频课程
  5. selenium入门详细指南(附淘宝抢购案例)
  6. html微信表情,emoji表情,QQ表情,微信表情转换
  7. win7无法搜索到网络计算机,笔记本win7系统搜索不到无线网络信号怎么解决
  8. java unicodeblock_Character.UnicodeBlock中cjk的说明详解
  9. flog和flag_立个flag是什么意思什么梗? 不懂这操作你就out了!
  10. 网络模块的568B和568A