我有一个在后台运行的服务。如果系统因低内存条件而终止该服务,那没问题,但我不希望系统重新启动该服务。
为了实现这一点,我会从 onStartCommand 方法中返回 START_NOT_STICKY 标志,如下所示:
然而,当我有意打开一系列应用程序以创建低内存条件时,日志中会出现以下内容:
为了实现这一点,我会从 onStartCommand 方法中返回 START_NOT_STICKY 标志,如下所示:
public int onStartCommand(Intent intent, int flags, int startId) {
// do stuff here
return START_NOT_STICKY;
}
然而,当我有意打开一系列应用程序以创建低内存条件时,日志中会出现以下内容:
Process com.myapp (pid 3960) has died.
Scheduling restart of crashed service com.myapp/.MyService in 5000ms
Low Memory: No more background processes.
...
Start proc com.myapp for service com.myapp/.MyService: pid=4905 uid=10031 gids={3003, 1015}
我的进程在不应该重启的情况下正在重启。为什么会这样?根据文档,START_NOT_STICKY不应允许服务重新启动。有没有其他方法来防止服务重新启动?或者我能知道何时重新启动了我的服务?
谢谢。