1. 程式人生 > >android 獲取Service(服務)的執行狀態

android 獲取Service(服務)的執行狀態

在開發的時候,經常會用到服務,有時候就會用到判斷服務的執行狀態,下面就建立一個工具類來判斷服務是在還在執行。

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");
第二個引數一定要是服務的全名。不能有錯。