Android无缘无故地杀死我的后台服务是否正常

时间:2015-08-04 05:12:35

标签: android

我的粘性背景服务每20-40分钟被操作系统杀死,这不是由我的应用程序根据logcat的异常或错误引起的。我做了一些关于此的研究,他们中的大多数人说当内存不足时os会杀死服务。但是,这不是我的情况。我的服务只消耗几MB内存,我的设备刚刚恢复出厂设置,因此剩余的内存空间很大。

我的服务通常会被杀死,并计划重新启动以及其他一些系统服务。在日志中,它表示我的服务计划在几百毫秒后重新启动。设置中的计时器 - >无论我的服务重启多少次,我的服务运行的应用程序都不会重置为0。

我在静态hashmap中有几KB的关键数据,重启后它们是否仍然存在?如果没有,在这种情况下我该怎么做才能保存我的临时数据? os会给我时间将它们保存到文件中吗?我应该在哪里拨打电话?

1 个答案:

答案 0 :(得分:0)

是的,您无法控制操作系统何时终止您的内存服务,如果服务没有每隔一段时间运行,您可以再次从应用程序启动服务。 您可以在服务类中声明一个静态布尔引用,并将其标记为" true"在onCreate()和" false"在onTaskRemoved()和onDestroy()上。 然后在if块中执行你的功能...... 如果(布尔值){ }

即使有两个或多个服务(相同服务的实例)在某个时刻运行,代码也只能由一个服务执行。