如何让后台程序永远运行?

============问题描述============


我的后台服务程序,不知道是什么原因,中途有停止运行的现象,并且无法检测这种现象,因为一启动软件它就正常了,但是查询前面的数据发现它根本没有运行。

我的后台程序是检测经纬度的。

============解决方案1============


弄个独立进程Service,在Service里面开线程 无线循环做你的任务。
另外再注册个广播 当网络变化和手机启动的时候 启动你的Service,这样Service一般都是在运行中的,除非被360等软件杀掉。
有的手机厂商系统里面 把后台的Service禁止了或者不同的效果,需要多测试在不同Android手机上。

============解决方案2============


这个要分设备,某些设备对于后台服务限制比较严格,可能会熄屏某个时间长度之后就会停止非系统级服务的响应,来达到省电的目的。

============解决方案3============


后台开个service,程序就算是关了,service也一直在运行
还有,不同型号的手机对后台管理的不太一样
比如魅族对后台管理的就比较严格,这样做貌似没有用
但是好像只有这一种方法

============解决方案4============


这个是因为Service被杀死的缘故

============解决方案5============


在service的destroy方法里加入重启service的步骤试试

============解决方案6============


在 Service 的 onStartCommand 里设置返回值,为 Stick 还是什么的,他就会默认内存不足杀死后如果后来有资源就自动重启了

============解决方案7============


如果是商业app,就不应该想着总是让自己的程序不被杀死永远运行,每个app都这么做,用户的手机就成了垃圾场了。
如果是写着自己玩的不发布的app倒无所谓。

============解决方案8============


比较靠谱的思路是,有两个服务相互监视,一个死了另外一个就负责重新启动被杀死的服务。

============解决方案9============


service杀死可以设置自动重启,或通过action来触发启动

posted on 2014-10-23 17:05  杨本康  阅读(2899)  评论(0)    收藏  举报

导航

我要啦免费统计