How to check current running applications in Android?
I want to check current running applications in android programmatically, similar to how it shows 6 applications if we press and hold the HOM开发者_开发技巧E button.
I'm mostly interested in the application names.
You can get current name package using
ActivityManager am = (ActivityManager) mContext
.getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity
.getPackageName();
You can use this package name to get current active application
You can check the processName of each element in the list to see if it's the process you're looking for. You can use this code
boolean isNamedProcessRunning(String processName){
if (processName == null)
return false;
ActivityManager manager =
(ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
for (RunningAppProcessInfo process : processes)
{
if (processName.equals(process.processName))
{
return true;
}
}
return false;
}
A long press of the HOME key brings up a list of recent (not necessarily running) tasks.
ActivityManager
has what you need. Look at getRunningAppProcesses
or getRunningTasks
.
You can view this information (and much more) by running dumpsys activity
via 'adb shell'.
Running processes (most recent first):
App #11: adj=fore /F 43fe7c20 233:com.android.browser/10004 (top-activity)
App #10: adj=bak /B 43dcec80 190:android.process.media/10009 (bg-empty)
App # 9: adj=vis /F 43f495c8 107:com.android.inputmethod.latin/10014 (service)
com.android.inputmethod.latin.LatinIME<=ProcessRecord{43dbe0e8 59:system/1000}
PERS # 8: adj=sys /F 43dbe0e8 59:system/1000 (fixed)
PERS # 7: adj=core /F 43f534c0 111:com.android.phone/1001 (fixed)
App # 6: adj=bak+1/B 43ea1f58 148:android.process.acore/10006 (bg-empty)
App # 5: adj=home /B 43f601c0 114:com.android.launcher/10000 (home)
App # 4: adj=bak+2/B 43f85128 133:com.android.settings/1000 (bg-empty)
App # 3: adj=bak+3/B 43eacae0 223:com.android.music/10029 (bg-empty)
App # 2: adj=bak+4/B 43dfc500 206:com.android.mms/10028 (bg-empty)
App # 1: adj=bak+5/B 43f8fcd0 166:com.android.alarmclock/10025 (bg-empty)
App # 0: adj=bak+6/B 43fcbe50 182:com.android.email/10008 (bg-empty)
PID mappings:
PID #59: ProcessRecord{43dbe0e8 59:system/1000}
PID #107: ProcessRecord{43f495c8 107:com.android.inputmethod.latin/10014}
PID #111: ProcessRecord{43f534c0 111:com.android.phone/1001}
PID #114: ProcessRecord{43f601c0 114:com.android.launcher/10000}
PID #133: ProcessRecord{43f85128 133:com.android.settings/1000}
PID #148: ProcessRecord{43ea1f58 148:android.process.acore/10006}
PID #166: ProcessRecord{43f8fcd0 166:com.android.alarmclock/10025}
PID #182: ProcessRecord{43fcbe50 182:com.android.email/10008}
PID #190: ProcessRecord{43dcec80 190:android.process.media/10009}
PID #206: ProcessRecord{43dfc500 206:com.android.mms/10028}
PID #223: ProcessRecord{43eacae0 223:com.android.music/10029}
PID #233: ProcessRecord{43fe7c20 233:com.android.browser/10004}
精彩评论