从getRunningAppProcesses()
中,可以得到当前运行进程的所有 PID。
但是给定一个PID,它的进程当前可能携带一个activity(在任务栈的顶部)或者多个service,如何知道这些activity或者service的名字呢?
getRunningServices
对于服务,您可以通过 pid调用和过滤。对于活动,您可以使用getRunningTasks
,然后检索topActivity
每个活动。您必须执行诸如按包过滤之类的操作,这很容易获得。
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
Log.e("start", "stsrt");
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for (int i = 0; i < procInfos.size(); i++) {
Log.e("Running task", "Running task: " + procInfos.get(i).processName);
}
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(r, 1000);
}
});