在Android中擷取系統正在運作的程序方法是getRunningAppProcesses()。
我們首先通過ActivityManager _ActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);來擷取系統的全局狀态。
然後通過調用getRunningAppProcesses()方法就可以獲得系統正在運作的程序。
ActivityManager _ActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = _ActivityManager .getRunningAppProcesses();
int i = list.size();
Log.i("tag", String.valueOf(i));
for (int j = 0; j < list.size(); j++) {
Log.i("tag", list.get(j).processName);
}
==========================================================
Android中關于任務和程序的概念有點混淆,網上看到一篇說得很好的文章,摘過來記錄一下~~~
http://bbs.sjtu.edu.cn/bbstcon,board,MobilePhone,reid,1288709685,file,M.1288709685.A.html
擷取最近運作的程式清單:
public void getTaskList() {
ImageButton ivIcon;
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
PackageManager pm = this.getPackageManager();
try {
List<RecentTaskInfo> list = am.getRecentTasks(64, 0);
llTaskBar.removeAllViews();
for (RecentTaskInfo ti : list) {
Intent intent = ti.baseIntent;
ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
if (resolveInfo != null) {
ivIcon = new ImageButton(this);
ivIcon.setImageDrawable(resolveInfo.loadIcon(pm));
ivIcon.setFocusable(true);
ivIcon.setClickable(true);
ivIcon.setEnabled(true);
ivIcon.setScaleType(ScaleType.CENTER);
ivIcon.setLayoutParams(new LinearLayout.LayoutParams(120, 120));
llTaskBar.addView(ivIcon);
}
}
} catch (SecurityException se) {
se.printStackTrace();
}
}
擷取正在運作的程序清單:
public void getRunningProcessList() {
List<ActivityManager.RunningAppProcessInfo> list = am.getRunningAppProcesses();
PackageManager pm = this.getApplicationContext().getPackageManager();
llTaskBar.removeAllViews();
for (ActivityManager.RunningAppProcessInfo pi : list) {
if (pm.getLaunchIntentForPackage(pi.processName) != null) {
try {
ApplicationInfo ai = pm.getApplicationInfo(pi.processName,
PackageManager.GET_META_DATA);
if (ai != null) {
ivIcon = new ImageButton(this);
ivIcon.setImageDrawable(ai.loadIcon(pm));
ivIcon.setFocusable(true);
ivIcon.setClickable(true);
ivIcon.setEnabled(true);
ivIcon.setScaleType(ScaleType.CENTER);
ivIcon.setLayoutParams(new LinearLayout.LayoutParams(120, 120));
llTaskBar.addView(ivIcon);
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}