Как проверить текущие запущенные приложения на Android?

Я хочу проверить текущие запущенные приложения в android программно, подобно тому, как он показывает 6 приложений, если мы нажмем и удерживаем кнопку HOME.

Меня больше всего интересуют имена приложений.

3 ответа

Вы можете получить текущий пакет имен, используя

ActivityManager am = (ActivityManager) mContext
 .getSystemService(Activity.ACTIVITY_SERVICE);
 String packageName = am.getRunningTasks(1).get(0).topActivity
 .getPackageName();

Вы можете использовать это имя пакета для получения текущего активного приложения


Вы можете проверить имя процесса каждого элемента в списке, чтобы узнать, является ли он процессом, который вы ищете. Вы можете использовать этот код

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;
}
</runningappprocessinfo>


Длительное нажатие клавиши HOME вызывает список недавних (не обязательно запущенных) задач.

ActivityManager имеет то, что вам нужно. Посмотрите getRunningAppProcesses или getRunningTasks.

Вы можете просмотреть эту информацию (и многое другое), запустив dumpsys activity через '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}

licensed under cc by-sa 3.0 with attribution.