gpt4 book ai didi

android - onTaskRemoved 后再次创建服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:37 25 4
gpt4 key购买 nike

我做了一个远程服务,这个服务在第一次启动时由我的 Activity 启动,之后,Activity 总是查看服务是否启动以避免再次启动它。

服务在 onCreate 函数中运行一些方法。此服务始终运行并在启动时启动。

问题(不是大问题,但我想知道为什么)是一旦创建了服务,如果我停止我的 Activity ,就会调用 onTaskRemoved,这是正确的,但几秒钟后再次调用 oncreate 方法并且服务再次启动。

知道为什么吗?我该如何控制它?

<service
android:name=".Service"
android:icon="@drawable/ic_launcher"
android:label="@string/service_name"
android:process=":update_process" >
</service>

AndroidManifest.xml

if (!isRunning()) {
Intent service = new Intent(this, UpdateService.class);
startService(service);
} else {
//Just to debug, comment it later
Toast.makeText(this, "Service was running", Toast.LENGTH_SHORT).show();
}

服务未运行时启动

最佳答案

问题是你的服务默认是粘性的,这意味着它会在被杀死时重新启动,直到你明确要求它停止。

覆盖服务中的 onStartCommand() 方法,并让它返回 START_NOT_STICKY。然后你的服务不会在被杀死时重新启动。

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
return START_NOT_STICKY;
}

关于android - onTaskRemoved 后再次创建服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com