调用stopService()是否会停止所有等待服务意图

时间:2016-05-26 19:23:45

标签: android android-service intentservice

在我的应用程序中,即使它正在运行,我也会多次启动服务。它是一项永久运行的服务。

我的问题是,当我呼叫stopService()时,它是否会停止当前正在运行的服务并且还清除等待意图的堆栈?因为我想确定它不再运行了。

1 个答案:

答案 0 :(得分:0)

我不会停止ServiceSTICKY Service。启动应用程序时,我正在控制服务是否正在运行:

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

用法:

if(!isMyServiceRunning(MyService.class, getApplicationContext())){
       startService(new Intent(this, MyService.class));
}

但是当我退出我的用户时,我正在停止服务,如:

Intent serviceIntent=new Intent(mContext,MyService.class);
mContext.getApplicationContext().stopService(serviceIntent);