使用從活動中的以下內容:
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提供的服務信息操作系統通過ActivityManager#getRunningServices。
所有使用onDestroy或onSometing事件或綁定器或靜態變量的方法都無法可靠地工作,因爲作爲一名開發人員,您永遠不會知道,Android何時決定殺死您的進程或是否調用了上述回調函數。請注意Android文檔生命週期事件表中的「killable」列。
請參閱https://developer.android.com/reference/android/app/Service.html示例 –