在Android开发中我们经常会遇到一些特殊的需求需要让我们的服务常驻内存,但是会遇到各种清理软件或者用户在设置中手动停止程序的情况而导致我们的服务被异常的终止掉。虽然没有办法保证绝对的常驻内存,但是通过策略我们还是可以尽最大的可能保证服务不被杀死。
1、应对用户在设置中主动停止的case
这种情况好对付一些,我们首先新建一个TargetService来继承Service
然后在Service的onDestory方法中发出广播,然后写一个广播接收器,收到此广播时可以重新启动一个Service
如上图所示,用户主动点击停止后,onDestory中的广播会被发出,可以在广播接收器中重新启动service。这种做法也比较流氓,但是对于使用清理软件是不能应对的,因为onDestory可能根本得不到执行,广播也就无从发出。
2、用对百度手机助手、QQ手机管家、360卫士等清理软件
应对清理软件的话不能使用上面的手段了,因为onDestory可能根本得不到执行。所以我们应该考虑使用其他的手段了。我理解的不死的服务不是说服务一刻也不能停止,而是说在服务被杀死后的最短时间内可以使服务重新被启动起来。
2.1使用系统的闹钟定时启动服务
在Service的onCreate方法中设置闹钟定时启动
但是该方法并不是万无一失的,有时候确实会出现不能自启的现象。所以我们还需要增加其他的手段去弥补。没错,就是利用系统广播,我们可以使用静态的Receiver接收相对频繁的广播消息。
2.2在广播中重启service
我们可以接收比如系统启动、屏幕唤醒等容易发生的广播,当收到广播消息时去重启我们的服务。
至此,通过以上几种手段相结合,基本可以保证我们的服务不会出现长时间的停顿。当然以上只是基本初级的代码,具体的情况需要结合实际的项目进行探讨。
最后提供示例的下载地址:点击打开链接
以上就是本篇文章【Android创建杀不死的Service百度手机管家「Android创建杀不死的Service」】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/8753.html
文章
相关文章
动态
同类文章
热门文章
栏目首页
网站地图
返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多