我已經經歷了這個question和這個question。但在這個library的幫助下,我現在可以使用下面的代碼獲取前臺任務列表。Android 5.0+ getRunningTasks已棄用
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { //For versions less than lollipop
ActivityManager am = ((ActivityManager) getSystemService(ACTIVITY_SERVICE));
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(5);
top = taskInfo.get(0).topActivity.getPackageName();
Log.v(TAG, "top app = " + top);
}else{ //For versions Lollipop and above
List<AndroidAppProcess> processes = ProcessManager.getRunningForegroundApps(getApplicationContext());
Collections.sort(processes, new ProcessManager.ProcessComparator());
for (AndroidAppProcess process : processes) {
if (process.foreground) {
top =process.name;
Log.v(TAG,top);
}
}
}
這裏,Android 5.0以上版本,我得到所有正在運行的前臺進程,但我無法斷定哪個應用是頂級的應用程序。
輸出上面代碼(其他條件)
com.android.vending
com.google.android.gms
com.google.android.googlequicksearchbox
com.google.android.videos
com.test1
com.naag.testing
com.example.android.gettask
這裏我頂程序是com.google.android.videos
現在如何決定com.google.android.videos
是從程序上面的列表頂部的應用程序?
applocker(或類似applocker)應用程序如何在5.0+上工作? 希望有人幫助,這將有助於某人。
你需要什麼使一個過程最高的工藝,如CPU,內存設定條件爲用法等等,我想你必須遍歷每個進程提供的'statm'來找出結果。 – asgs