在项目开发过程中,常常需要在开启一个服务之前判断该服务是否已经在运行。
//本方法判断自己写的一个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;
}
更多最新资讯请关注本博客!点击进入:来自星星的礼丶精品屋
在Android开发中,通常需要检查一个特定服务是否正在运行,以防止重复启动导致异常。本文介绍如何利用ActivityManager和RunningServiceInfo来实现这一功能,并提供了将此功能转化为通用方法的示例。
290

被折叠的 条评论
为什么被折叠?



