获取当前正在运行的程序列表
经过测试,5.0以上7.0以下适用。7.0无用
代替5.0以下getRunningAppProcesses
依赖jar
核心代码
/**
* 5.0系统以上获取运行的进程方法
*/
private List<AppEntity> getAndroidProcess(Context context) {
List<AppEntity> resule = new ArrayList<AppEntity>();
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = context.getPackageManager();
AppUtils proutils = new AppUtils(context);
List<AndroidAppProcess> listInfo = ProcessManager.getRunningAppProcesses();
if(listInfo.isEmpty() || listInfo.size() == 0){
return null;
}
for (AndroidAppProcess info : listInfo) {
ApplicationInfo app = proutils.getApplicationInfo(info.name);
// 过滤自己当前的应用
if (app == null || context.getPackageName().equals(app.packageName)) {
continue;
}
// 过滤系统的应用
if ((app.flags & app.FLAG_SYSTEM) > 0) {
continue;
}
AppEntity ent = new AppEntity();
ent.setAppIcon(app.loadIcon(pm));//应用的图标
ent.setAppName(app.loadLabel(pm).toString());//应用的名称
ent.setPackageName(app.packageName);//应用的包名
// 计算应用所占内存大小
int[] myMempid = new int[] { info.pid };
Debug.MemoryInfo[] memoryInfo = am.getProcessMemoryInfo(myMempid);
double memSize = memoryInfo[0].dalvikPrivateDirty / 1024.0;
int temp = (int) (memSize * 100);
memSize = temp / 100.0;
ent.setMemorySize(memSize);//应用所占内存的大小
resule.add(ent);
}
return resule;
}
源代码
本文介绍如何在Android设备上获取当前正在运行的后台程序列表,包括所需的依赖库和核心代码实现。

2045

被折叠的 条评论
为什么被折叠?



