您的位置:首页 > 其它

杀不死的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()是最需要花时间学习一下的,内存优化,这才是最好的解决方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息