作為android的開發(fā)者羡鸥,獲取后臺運行APP應該就像是基本功一樣。不過遇到這個需求忠寻,在網(wǎng)上搜了好長時間惧浴,試了各種方法,都沒有達到要求奕剃。感覺網(wǎng)上的文章都是各種抄衷旅。
終于找到了處理辦法,測試了之后纵朋,可以達到要求柿顶,特別記錄下來!
/**
* 獲取后臺運行APP packageName
*
* @param context
*/
public static void getRunningApp(Context context) {
PackageManager localPackageManager = context.getPackageManager();
List localList = localPackageManager.getInstalledPackages(0);
for (int i =0; i < localList.size(); i++) {
PackageInfo localPackageInfo =(PackageInfo) localList.get(i);
String packageStr = localPackageInfo.packageName.split(":")[0];
if (((ApplicationInfo.FLAG_SYSTEM & localPackageInfo.applicationInfo.flags) ==0)
&&((ApplicationInfo.FLAG_UPDATED_SYSTEM_APP & localPackageInfo.applicationInfo.flags) ==0)
&&((ApplicationInfo.FLAG_STOPPED & localPackageInfo.applicationInfo.flags) ==0)) {
Log.e("TAG", packageStr);
}
}
}
當然還有點疑問操软,這個方法獲取的是后臺的APP嘁锯,即是按菜單鍵后臺可以看到的APP,但是有可能已被系統(tǒng)殺死。所以有更好的方法歡迎評論分享家乘!