如何让我的代码只显示我可以杀死的正在运行的应用程序的名称,因为在我的代码中它显示了包名称,这对用户来说非常混乱。而且,我希望它在应用程序旁边有一个图标,以便用户可以轻松识别它。我从互联网上获取此代码,并将其用于我的项目。这是我的代码:
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;
}
}
}
}
希望得到您的所有答案和建议。谢谢你的帮助:)
答案 0 :(得分:0)
我不确定如何在纯Java中执行此操作,但在本机代码中,您可以调用POSIX kill(2)函数。如果为信号ID传递0,则不会向进程发送任何信号,但仍会执行权限检查以查看是否可以控制该进程。基本上每个进程都执行此操作,并且只显示您没有错误的进程列表。