2010-07-19 76 views

回答

10

長按HOME鍵會顯示最近(不一定是正在運行的)任務的列表。

ActivityManager有你所需要的。看看getRunningAppProcessesgetRunningTasks

您可以通過'adb shell'運行dumpsys activity來查看此信息(以及更多內容)。

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} 
+0

我說的是語法上的問題。 – UMAR 2010-08-05 13:31:05

48

可以使用

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

您可以使用此包的名稱以獲得當前活動的應用程序

+1

真棒回答。我一直在尋找這個!這給出了用戶當前正在執行的任務(他們當前正在執行的程序)。大! – 2012-07-13 13:07:24

+13

需要權限:android.permission.GET_TASKS – black 2013-11-16 08:28:37

+0

救了我的一天.. !!謝謝 ! – 2014-05-23 14:55:55

12

您可以檢查每個元素的processName在列表中查看是否獲得當前名包這是你正在尋找的過程。您可以使用此代碼

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; 
} 
相關問題