我的后台服务程序,不知道是什么原因,中途有停止运行的现象,并且无法检测这种现象,因为一启动软件它就正常了,但是查询前面的数据发现它根本没有运行。 我的后台程序是检测经纬度的。 |
|
4分 |
弄个独立进程Service,在Service里面开线程 无线循环做你的任务。
另外再注册个广播 当网络变化和手机启动的时候 启动你的Service,这样Service一般都是在运行中的,除非被360等软件杀掉。 有的手机厂商系统里面 把后台的Service禁止了或者不同的效果,需要多测试在不同Android手机上。 |
4分 |
这个要分设备,某些设备对于后台服务限制比较严格,可能会熄屏某个时间长度之后就会停止非系统级服务的响应,来达到省电的目的。
|
4分 |
后台开个service,程序就算是关了,service也一直在运行
还有,不同型号的手机对后台管理的不太一样 比如魅族对后台管理的就比较严格,这样做貌似没有用 但是好像只有这一种方法 |
4分 |
这个是因为Service被杀死的缘故
|
如何做个不被杀死的service呢?
|
|
4分 |
在service的destroy方法里加入重启service的步骤试试
|
4分 |
在 Service 的 onStartCommand 里设置返回值,为 Stick 还是什么的,他就会默认内存不足杀死后如果后来有资源就自动重启了
|
4分 |
如果是商业app,就不应该想着总是让自己的程序不被杀死永远运行,每个app都这么做,用户的手机就成了垃圾场了。
如果是写着自己玩的不发布的app倒无所谓。 |
8分 |
比较靠谱的思路是,有两个服务相互监视,一个死了另外一个就负责重新启动被杀死的服务。
|
4分 |
service杀死可以设置自动重启,或通过action来触发启动
|
网上介绍的很多办法都试过了,发现并不是很有效。 这个方法比较靠谱,不过应该要三个服务,来个石头剪刀布。 |