关于Android中开机启动服务
最近在项目中需要实现开机启动一个应用中的服务功能,果断在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_PACKAGES和FLAG_EXCLUDE_STOPPED_PACKAGES ,来标识一个intent是否激活处于“stopped state”的应用,当两个Flag都不设置或者都进行设置的时候,采用的是FLAG_INCLUDE_STOPPED_PACKAGES的效果。有了上面的新机制之后,Google觉得给所有的广播intent默认加上FLAG_EXCLUDE_STOPPED_PACKAGES会非常的Cool,能在一定程度上避免流氓软件、病毒啊干坏事,还能提高效率,就导致了RECEIVE_BOOT_COMPLETED广播如果用户没有运行过应用或者在设置中强行停止了应用,就不会接收到BOOT_COMPLETED广播。
关于Android中开机启动服务相关推荐
- android+启动脚本,imx6q android 添加开机启动脚本
1.在xx/out/target/product/sabresd_6dq/root/init.rc中添加以下内容 ========================================== ...
- Android Q 开机启动流程
https://www.it610.com/article/1304931662924124160.htm Android Q 开机启动流程 开机启动概述: step 1: 上电开机 长按power键 ...
- linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式
Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...
- CentOS 7添加开机启动服务/脚本
CentOS 7添加开机启动服务/脚本 一.添加开机自启服务 在CentOS 7中添加开机自启服务非常方便,只需要两条命令(以Jenkins为例): systemctl enable jenkins. ...
- linux自定义开机启动服务和chkconfig使用方法
文章转载! linux自定义开机启动服务和chkconfig使用方法 1. 服务概述 在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动, ...
- Android 系统(215)---Android O_GO后台启动服务改动
Android O_GO后台启动服务改动 Android O_GO后台启动服务改动 1. 问题现象 应用在适配Android O/GO的系统时,会发现后台启动不了服务,会报出如下异常,并强退: jav ...
- linux开机启动服务详解
http://blog.163.com/sjt_linux/blog/static/19931031920126295452884/ linux开机启动服务详解(转) 2012-07-29 17:45 ...
- vivo显示android设备登录,android中的后台服务没有运行oppo,vivo等设备
我想在后台运行服务,即使应用程序从堆栈中死亡.此功能在某些设备上正常工作.但在OPPO和vivo手机中,如果应用程序被杀,它将不会运行.有没有解决方案.如果没有,那么我如何打开允许屏幕.android ...
- centos 开机启动java_Centos 7将java jar包自定义开机启动服务
Centos 7将java jar包自定义开机启动服务 1. 先上 jar包的启动脚本 vim service.sh #!/bin/bash # 需要变更的参数 # 先查看java绝对路径:which ...
- Android中Activity启动模式
Android中Activity启动模式一共是四种,这里我写一下我对其的理解: 1.standard(默认) 2.singleTop,如果某个Activity设置了该属性,且当前Activity就是这 ...
最新文章
- 以下关于python缩进_Python 的缩进是不是反人类的设计?
- 脑科学研究:对于学习来说,休息可能与练习同样重要...
- 专家支招:手把手教你如何选型移动CRM
- 每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列
- 细学PHP 08 数组-2
- 反向算法_10分钟带你了解神经网络基础:反向传播算法详解
- spring boot整合cxf发布和调用webservice
- vi/vim使用进阶: 在VIM中使用GDB调试 – 使用vimgdb
- 下载python流程-Python编写win程序的操作流程
- 在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法...
- Spinnaker:云原生多云环境持续部署的未来
- Wincc安装教程+破解教程(包括软件下载链接——百度网盘)
- pc端+移动端电商源码
- Two Cylinders (辛普森公式处理积分)
- 不从SD卡启动树莓派2
- C/C++外卖点餐管理程序
- 鹏业安装算量软件识别电气系统图(表格式)
- java jmf获取图像_java利用jmf实现拍照功能
- pymysql.err.OperationalError: (1054, “Unknown column ‘xxx‘ in ‘where clause‘“)问题解决方法
- ofdm系统matlab仿真,基于Simulink 的OFDM 系统仿真分析
热门文章
- 华三交换机ping不通用户但用户_华三交换机ping不通路由器
- python学习之——假人配对
- arcgis制图汇总
- MySQL数据分析实战-朱元禄-专题视频课程
- selenium入门详细指南(附淘宝抢购案例)
- html微信表情,emoji表情,QQ表情,微信表情转换
- win7无法搜索到网络计算机,笔记本win7系统搜索不到无线网络信号怎么解决
- java unicodeblock_Character.UnicodeBlock中cjk的说明详解
- flog和flag_立个flag是什么意思什么梗? 不懂这操作你就out了!
- 网络模块的568B和568A