被判断的Service 必须是带包名的全名
通过Service的类名来判断是否启动某个服务
private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){ for(int i = 0; i < mServiceList.size(); i ++){ if(className.equals(mServiceList.get(i).service.getClassName())){ return true; } } return false; }
获取所有启动的服务的类名
private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){ String res = ""; for(int i = 0; i < mServiceList.size(); i ++){ res+=mServiceList.get(i).service.getClassName()+ " /n"; } return res; }
判断服务是否存在
ActivityManager mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30); // 我要判断的服务名字,必须是带包名的全名 final String musicClassName = "rod.fasdf.TService"; boolean b = MusicServiceIsStart(mServiceList, musicClassName); System.out.println("服务是否开启======>"+b);
例子如下:
package com.tutor.runningservice; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.os.Bundle; import android.widget.TextView; public class RunningService extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); TextView mTextView = new TextView(this); ActivityManager mActivityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30); //我要判断的服务名字,我在launcher2里加了一个音乐服务 final String musicClassName = "com.android.launcher2.MusicService"; boolean b = MusicServiceIsStart(mServiceList, musicClassName); mTextView.setText("你要判断的服务状态为: " +b+"\n" + getServiceClassName(mServiceList)); setContentView(mTextView); } //通过Service的类名来判断是否启动某个服务 private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){ for(int i = 0; i < mServiceList.size(); i ++){ if(className.equals(mServiceList.get(i).service.getClassName())){ return true; } } return false; } //获取所有启动的服务的类名 private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){ String res = ""; for(int i = 0; i < mServiceList.size(); i ++){ res+=mServiceList.get(i).service.getClassName()+ " \n"; } return res; } }