要檢測一個Service是否已經被stopService
停止,可以使用isServiceRunning
方法來檢查Service的運行狀態。下面是一個示例代碼:
public boolean isServiceRunning(Context context, Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> runningServices = manager.getRunningServices(Integer.MAX_VALUE);
for (ActivityManager.RunningServiceInfo serviceInfo : runningServices) {
if (serviceInfo.service.getClassName().equals(serviceClass.getName())) {
return true;
}
}
return false;
}
在這個方法中,首先獲取ActivityManager
實例,然后使用getRunningServices
方法獲取所有正在運行的Service列表。接著遍歷列表,通過比較Service的類名是否與目標Service類的名稱相同來判斷Service是否正在運行。
在調用stopService
方法之后,可以使用上面的方法檢查目標Service是否已經停止。