从另一个应用程序实例控制后台服务

时间:2018-12-02 14:26:27

标签: android service android-service

我制作了一个可以启动长期存在的后台服务的应用程序。有时,应用程序本身已关闭,并且服务一直在运行,这是我想要的方式。

问题是在调用者应用程序关闭后,我不知道如何控制该服务。例如,如果用户重新打开该应用程序,我想给他们选择是终止该进程还是使其继续运行。

我可以使用以下功能(从this solution获取)来检测服务是否正在运行:

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;
}

我尝试过从活动中调用此行,但这没做任何事情:

if(isMyServiceRunning(MyService.class)) {
    stopService(new Intent(this, MyService.class));
}

0 个答案:

没有答案