在我的项目中,我使用的是一个在onStartCommand函数中返回START_STICKY
的服务。
我使用该服务在asynctask中运行一些后台处理(我从onStartCommand函数调用)。
我需要终止服务,因为当我检查手机上的应用程序设置时它会继续运行。并设置AlarmManager在X小时后再次调用服务。
我试过了
if (isMyServiceRunning()) {
stopService(new Intent(context, MFilterIt.class));
}
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if ("com.sixdee.mfilterit.MFilterIt".equals(service.service
.getClassName())) {
return true;
}
}
return false;
}
我在我的asynctask中调用它。所以我看到这个行为。如果我在AlarmManager中设置的延迟是2.延迟变为6(2 * 3)。我只有当我在上面查杀服务时才会看到这种行为提到的时尚
还有其他方式或我做错了吗。