2016-03-15 54 views
0

我一直在試圖讓使用下面的代碼在後臺正在運行的應用程序數量:如何統計Android中後臺運行的應用程序數量?

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses(); 
int numberOfApps = runningAppProcessInfo.size(); 

但是,即使超過1個應用程序在後臺運行的代碼返回1.

+0

是的,但你需要一個可怕的權限爲你的應用程序才能做到這一點(http://developer.android.com/reference/android/Manifest.permission.html#GET_TASKS)。編輯:這是可怕的,因爲它是大多數應用程序不應該需要的權限,並且從用戶的角度來看,使得您的應用程序的可信度大大降低,除非您有非常明顯的理由需要它。 實現你所追求的方法是:http://developer.android.com/reference/android/app/ActivityManager.html#getRunningTasks(int) – iOS

+0

但這個方法已被棄用爲lollipop.is有任何其他的解決方案? – Shashank

回答

0
final PackageManager pm = getPackageManager(); 
//get a list of installed apps. 
List<ApplicationInfo> packages = 

pm.getInstalledApplications(PackageManager.GET_META_DATA); 

for (ApplicationInfo packageInfo : packages) { 
    Log.d(TAG, "Installed package :" + packageInfo.packageName); 
    Log.d(TAG, "Source dir : " + packageInfo.sourceDir); 
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
} 
// the getLaunchIntentForPackage returns an intent that you can use with startActivity() 

PackageManager可以通過這種方式來填充列表,並從List.getCount()你可以得到數總數..

我希望這將有助於

+0

此方法不適用於6.0 – Shashank

相關問題