gpt4 book ai didi

Android:如何检查服务是否正在运行?

转载 作者:行者123 更新时间:2023-11-29 14:44:34 25 4
gpt4 key购买 nike

是否有任何简单的方法来确定某个服务是否处于 Activity 状态?我这样做

    boolean serviceWorking = false;

@Override
public void onCreate() {
serviceWorking = true;
}
@Override
public void onDestroy() {
serviceWorking = false;
stopSelf(startId);
}

但它不起作用。

最佳答案

有关运行服务的信息由 Android 操作系统通过 ActivityManager#getRunningServices 提供。所有使用 onDestroy 或 onSometing 事件或 Binders 或静态变量的方法都不会可靠地工作,因为作为开发人员,您永远不知道 Android 何时决定终止您的进程或调用了哪些回调。

你可以在activity中写一个这样的方法

private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}

调用它使用:

isMyServiceRunning(MyService.class)

关于Android:如何检查服务是否正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44517975/

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