列出Android设备所有启动的服务 判断某个服务是否开启

2025-05-15 00:06:23
推荐回答(2个)
回答1:

今天给大家的小例子是列出Android设备中所有启动的服务,及判断某个服务是否开启,具体步骤如下了:
第一步:新建一个Android工程,命名为RunningService。
第二步:修改RunningService.java代码如下:
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 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 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 mServiceList){
String res = "";
for(int i = 0; i < mServiceList.size(); i ++){
res+=mServiceList.get(i).service.getClassName()+ " /n";
}

return res;
}
}
第三步:运行上述工程,查看效果!

回答2:

列出Android设备所有启动的服务,判断某个服务是否开启,主要是通过ActivityManager 这个类来获取所有已经启动的任务,如下代码:
  public void listActivity(){
  List tasks= activityManager.getRunningTasks(30);//获取正在启动的服务
  Iterator itInfo=tasks.iterator();//获得一个遍历的对象
  while(itInfo.hasNext()){
  RunningTaskInfo info=itInfo.next();
  all.add("【id="+info.id+"】,"+info.baseActivity.getClassName());//服务进行查找和遍历
  
  }
  adapter=new ArrayAdapter(this, android.R.layout.simple_list_item_1,this.all);
  
  tasklist.setAdapter(adapter);
  }
  }
  ActivityManager 类:
  常用的静态内部类如下(下面具体介绍):
  ActivityManager.MemoryInfo: 系统可用内存信息
  ActivityManager.RecentTaskInfo: 最近的任务信息
  ActivityManager.RunningAppProcessInfo: 正在运行的进程信息
  ActivityManager.RunningServiceInfo: 正在运行的服务信息
  ActivityManager.RunningTaskInfo: 正在运行的任务信息