android如何判断后台一个Service是否在运行

我有一个后台Service不断和服务器同步信息
但是如何判断这个Service是否处在运行中,挂了就要重启起来。

阅读 27k
2 个回答

出自:http://www.cnblogs.com/stay/articles/...

public static boolean isServiceRunning(Context mContext,String className) {

           boolean isRunning = false;
           ActivityManager activityManager = (ActivityManager)
           mContext.getSystemService(Context.ACTIVITY_SERVICE); 
           List<ActivityManager.RunningServiceInfo> serviceList 
                      = activityManager.getRunningServices(30);

           if (!(serviceList.size()>0)) {
               return false;
           }

           for (int i=0; i<serviceList.size(); i++) {
               if (serviceList.get(i).service.getClassName().equals(className) == true) {
                   isRunning = true;
                   break;
               }
           }
           return isRunning;
       }

@ALAN 的比较适合判断其它service,如果是自己判断自己是否已经运行,则可以考虑用类似排他方式,比如设置变量等,判断自己是否已经被运行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏