android 獲取Service(服務)的執行狀態
阿新 • • 發佈:2019-02-02
在開發的時候,經常會用到服務,有時候就會用到判斷服務的執行狀態,下面就建立一個工具類來判斷服務是在還在執行。
package cn.edu.cqu.mobilesafe.utils; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.content.Context; public class ServiceUtils { /** * 校驗某個服務是否還存在 */ public static boolean isServiceRunning(Context context,String serviceName){ // 校驗服務是否還存在 ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningServiceInfo> services = am.getRunningServices(100); for (RunningServiceInfo info : services) { // 得到所有正在執行的服務的名稱 String name = info.service.getClassName(); if (serviceName.equals(name)) { return true; } } return false; } }
呼叫該方法:
boolean serviceRunning = ServiceUtils.isServiceRunning(SettingActivity.this,
"cn.edu.cqu.mobilesafe.service.AddressService");
第二個引數一定要是服務的全名。不能有錯。