在項目開發過程中,常常需要在開啓一個服務之前判斷該服務是否已經在運行。
//本方法判斷自己寫的一個Service-->com.star.myService是否已經運行
public static boolean isServiceRunning()
{
ActivityManager myManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<RunningServiceInfo> runningService = (ArrayList<RunningServiceInfo>) myManager.getRunningServices(30);
for(int i = 0 ; i<runningService.size();i++)
{
if(runningService.get(i).service.getClassName().toString().equals("com.star.myService"))
{
return true;
}
}
return false;
}
以傳參的方式將該方法改造成判斷服務是否運行的通用方法,開啓服務前先判斷,避免重複開啓,引發不可預料的異常。
//本方法判斷服務是否已經運行
public static boolean isServiceRunning(String serviceName)
{
ActivityManager myManager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
ArrayList<RunningServiceInfo> runningService = (ArrayList<RunningServiceInfo>) myManager.getRunningServices(30);
for(int i = 0 ; i<runningService.size();i++)
{
if(runningService.get(i).service.getClassName().toString().equals(serviceName))
{
return true;
}
}
return false;
}
更多最新資訊請關注本博客!點擊進入:來自星星的禮丶精品屋