在项目开发过程中,常常需要在开启一个服务之前判断该服务是否已经在运行。
//本方法判断自己写的一个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;
}
以传参的方式将该方法改造成判断服务是否运行的通用方法,开启服务前先判断,避免重复开启,引发不可预料的异常。