获取正在运行的应用程序的简单名称

时间:2012-01-28 15:18:35

标签: java android

如何让我的代码只显示我可以杀死的正在运行的应用程序的名称,因为在我的代码中它显示了包名称,这对用户来说非常混乱。而且,我希望它在应用程序旁边有一个图标,以便用户可以轻松识别它。我从互联网上获取此代码,并将其用于我的项目。这是我的代码:

    private List<TaskObject> getTasksToKill() {
        List<TaskObject> tol = new ArrayList<TaskObject>();

        for (int i = 0; i < adapter.getCount(); i++) {
            TaskObject to = adapter.getItem(i);
            if (to.isToKill()) {
                tol.add(to);
            }
        }

        return tol;
    }


    public void loadRunningProcesses() {

        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

        List<RunningAppProcessInfo> appinfolist = activityManager
                .getRunningAppProcesses();

        Log.d(TAG, "AppInfoList Size: " + appinfolist.size());

        for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : appinfolist) {
            TaskObject runningtask = new TaskObject();
            runningtask.setPid(runningAppProcessInfo.pid);
            runningtask.setProcessName(runningAppProcessInfo.processName);
            adapter.addTask(runningtask);
        }
    }

    class TaskObject {
        int pid;
        String processName;
        private boolean toKill;

        public int getPid() {
            return pid;
        }

        public void setPid(int pid) {
            this.pid = pid;
        }

        public String getProcessName() {
            return processName;
        }

        public void setProcessName(String processName) {
            this.processName = processName;
        }

        public boolean isToKill() {
            return toKill;
        }

        public void setToKill(boolean toKill) {
            this.toKill = toKill;
        }

    }

    }
}

希望得到您的所有答案和建议。谢谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

我不确定如何在纯Java中执行此操作,但在本机代码中,您可以调用POSIX kill(2)函数。如果为信号ID传递0,则不会向进程发送任何信号,但仍会执行权限检查以查看是否可以控制该进程。基本上每个进程都执行此操作,并且只显示您没有错误的进程列表。