杀不死的Service
2015-12-23 13:38
363 查看
项目需要,这两天研究了一下Service长驻后台的方法与实现。网上此类文章很多,本文只是一个总结。大概有以下几种:
1、onStartCommand()中return START_STICK
2、onStartCommand()中startForeground()
3、onDeStroy()中startService()
4、注册BroadcastReceiver监听系统广播(如TIME_TICK)onReceive中判断Service是不是还在,不在就重新启动Service
5、签名升级为系统APP
6、双进程守护,同时开启两个进程,两个进程中循判断对方是否还在,不在的话立即启动对方,最理想的是NDK用C++实现Linux的父子进程相互依赖
7、启动一个FloatingWindow放在屏幕上(如果不想别人看见,就把窗口宽高设置为1px*1px)
8、onTrimMemmory()中优化内存
9、闹钟事件循环判断Service是否在运行
这些方法在不同版本的系统中表现情况不同,所以需要自己去测试一下。不过我感觉呢,还是onTrimMemmory()是最需要花时间学习一下的,内存优化,这才是最好的解决方法
1、onStartCommand()中return START_STICK
2、onStartCommand()中startForeground()
3、onDeStroy()中startService()
4、注册BroadcastReceiver监听系统广播(如TIME_TICK)onReceive中判断Service是不是还在,不在就重新启动Service
5、签名升级为系统APP
6、双进程守护,同时开启两个进程,两个进程中循判断对方是否还在,不在的话立即启动对方,最理想的是NDK用C++实现Linux的父子进程相互依赖
7、启动一个FloatingWindow放在屏幕上(如果不想别人看见,就把窗口宽高设置为1px*1px)
8、onTrimMemmory()中优化内存
9、闹钟事件循环判断Service是否在运行
这些方法在不同版本的系统中表现情况不同,所以需要自己去测试一下。不过我感觉呢,还是onTrimMemmory()是最需要花时间学习一下的,内存优化,这才是最好的解决方法
相关文章推荐
- Android IPC进程间通讯机制
- android之定时器AlarmManager
- axis备忘
- Windows XP Service Pack 3 RC1 v.3244 winxp补丁3 提供下载
- Run As Service runassrv.exe 详细参数第1/2页
- 安装MySQL在最后的start service停住了解决方法
- android使用Messenger绑定Service的多种实现方法
- asp.net Web Service 接口大量数据传输解决方案
- JavaScript计划任务后台运行的方法
- Silverlight中动态获取Web Service地址
- android调用web service(cxf)实例应用详解
- 在Android中 获取正在运行的Service 实例
- ASP.NET State service状态服务的问题解决方法
- 卸载ZkeysPHP 后iis网站出现Service Unavailable 解决办法
- IIS Admin Service 服务因 2149647636 (0x80210514) 服务性错误而停止
- Service Temporarily Unavailable的503错误是怎么回事?
- android教程之service使用方法示例详解
- SSB(SQLservice Service Broker) 入门实例介绍
- Android应用程序四大组件之使用AIDL如何实现跨进程调用Service