获取并杀死正在运行的android应用

luoyjx · 2014-08-29 20:03 · 1276次阅读

// 正在运行的
    public List<programe> getRunningProcess() {
        pi = new PackagesInfo(this);
 
        am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        // 获取正在运行的应用
        run = am.getRunningAppProcesses();
        // 获取包管理器,在这里主要通过包名获取程序的图标和程序名
        pm = this.getPackageManager();
        List<programe> list = new ArrayList<programe>();
 
        for (RunningAppProcessInfo ra : run) {
            // 这里主要是过滤系统的应用和电话应用,当然你也可以把它注释掉。
            if (ra.processName.equals("system")
                    || ra.processName.equals("com.android.phone")) {
                continue;
            }
            if (pi.getInfo(ra.processName) == null) {
                continue;
            }
            int[] myMempid = new int[] { ra.pid };
            Programe pr = new Programe();
            String xx = "" + ra.processName;
            Log.d("zphlog", "ra.processName=" + xx);
            pr.setIcon(pi.getInfo(ra.processName).loadIcon(pm));
            pr.setName(pi.getInfo(ra.processName).loadLabel(pm).toString());
 
            System.out.println(pi.getInfo(ra.processName).loadLabel(pm)
                    .toString());
            // PID
            pr.setPID("PID:" + ra.pid);
            // memory
            Debug.MemoryInfo[] memoryInfo = am.getProcessMemoryInfo(myMempid);
            double memSize = memoryInfo[0].dalvikPrivateDirty / 1024.0;
            int temp = (int) (memSize * 100);
            memSize = temp / 100.0;
            pr.setMemory("Memory:" + memSize);
 
            list.add(pr);
        }
        return list;
    }

运行程序,手机剩余可运行内存的方法

// 更新可用内存信息
public void upDateMemAndPakInfo() {
    // 获得MemoryInfo对象
    ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
    // 获得系统可用内存,保存在MemoryInfo对象上
    am.getMemoryInfo(memoryInfo);
    long memSize = memoryInfo.availMem;
    // 字符类型转换
    String restMemSize = Formatter
            .formatFileSize(getBaseContext(), memSize);
    mRestMemory.setText("剩余空间还有:" + restMemSize);
    // mPakcgeNums.setText(run.size());
    mPakcgeNums.setText("正在运行的有:" + run.size() + "个");
}
收藏

暂无评论

登录后可以进行评论。没有账号?马上注册