相关疑难解决方法(0)

服务以 START_NOT_STICKY 重新启动

我有一个在后台运行的服务。如果系统在内存不足的情况下终止此服务很好,但是,我不希望系统重新启动该服务。

因此,为了做到这一点,我从 onStartCommand 返回了 START_NOT_STICKY 标志,如下所示:

    public int onStartCommand(Intent intent, int flags, int startId) {

        // do stuff here

        return START_NOT_STICKY;
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我故意打开一堆应用程序以创建低内存条件时,我在日志中看到了这一点:

    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}
Run Code Online (Sandbox Code Playgroud)

所以我的进程在不应该重新启动时被重新启动。为什么是这样?根据文档 START_NOT_STICKY 不应允许重新启动服务。有没有其他方法可以防止服务重新启动?或者我可以知道我的服务何时重新启动?

谢谢

service android

5
推荐指数
1
解决办法
1561
查看次数

标签 统计

android ×1

service ×1