75前面提到的nameNotFoundException的解决

来源:互联网 发布:然足下卜之鬼乎翻译 编辑:程序博客网 时间:2024/06/05 05:10

在前面的代码中(72篇),运行的时候,会打印system.err(catch语句捕获的异常),是因为有的进程,他压根没有对应的apk文件,它是c语言或者其他语言实现(比如内核进程)我们只需要在catch语句处理这些即可:

package com.ustc.mobilemanager.engine;import java.util.ArrayList;import java.util.List;import com.ustc.mobilemanager.R;import com.ustc.mobilemanager.domain.TaskInfo;import android.app.ActivityManager;import android.app.ActivityManager.RunningAppProcessInfo;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageManager;import android.graphics.drawable.Drawable;import android.os.Debug.MemoryInfo;/** *  * 提供手机里面的进程信息 *  * @author *  */public class TaskInfoProvider {/** * 获取所有的进程信息 *  * @param context * @return */public static List<TaskInfo> getTaskInfo(Context context) {ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);PackageManager pm = context.getPackageManager();List<RunningAppProcessInfo> processInfos = am.getRunningAppProcesses();List<TaskInfo> taskInfos = new ArrayList<TaskInfo>();for (RunningAppProcessInfo processInfo : processInfos) {TaskInfo taskInfo = new TaskInfo();// 进程名就是包名String packname = processInfo.processName;taskInfo.setPackname(packname);// import android.os.Debug.MemoryInfo导包不能导错了MemoryInfo[] memoryInfos = am.getProcessMemoryInfo(new int[] { processInfo.pid });// 转成byte,方便转化long memsize = memoryInfos[0].getTotalPrivateDirty() * 1024l;taskInfo.setMemSize(memsize);try {// PackageInfo packageInfo = pm.getPackageInfo(packname, 0);// packageInfo.applicationInfoApplicationInfo applicationInfo = pm.getApplicationInfo(packname, 0);Drawable icon = applicationInfo.loadIcon(pm);taskInfo.setIcon(icon);String name = applicationInfo.loadLabel(pm).toString();taskInfo.setName(name);if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {// 用户进程taskInfo.setUserTask(true);} else {// 系统进程taskInfo.setUserTask(false);}} catch (Exception e) {e.printStackTrace();//系统内核进程   没有名称taskInfo.setName(packname);taskInfo.setIcon(context.getResources().getDrawable(R.drawable.icon));}taskInfos.add(taskInfo);}return taskInfos;}}


0 0
原创粉丝点击