1. 程式人生 > >Android判斷service是否在執行!

Android判斷service是否在執行!

Android 中判斷某一指定的服務是否有在執行中,這裡使用ActivityManager例項來檢索正在執行的任務例項,獲取其元件名稱,然後通過與指定service的元件名稱進行比對。。。

    程式碼如下:
     /**
     * @params componentName 查詢指定service的元件名;
     * e.g. com.hr.life.trnfa.service.services.MqttConnectService
     * 
     * @return boolean 返回該服務是否在執行中;
     */
    private boolean serverIsRunning
(String componentName) { ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> runningServices = activityManager.getRunningServices(Integer.MAX_VALUE); if (runningServices.size() <= 0
) { return false; } for (ActivityManager.RunningServiceInfo serviceInfo : runningServices) { if (componentName.equals(serviceInfo.service.getClassName())) { return true; } } return false; }

Notes : 注意activityManager.getRunningServices(int maxNum),該方法這裡使用的是Integer.MAX_VALUE最大值,如果應用較多相關的service也會很多,如果固定值可能存在沒有列出的情況;