【发布时间】:2012-01-11 05:40:37
【问题描述】:
我正在尝试在 android 中构建一个任务杀手类型的应用程序。我可以使用 ActivityManager 显示当前正在运行的任务列表,但在终止任务时遇到问题。
这是我获取当前正在运行的任务列表的方法:
ActivityManager am = (ActivityManager) context.
getSystemService(Activity.ACTIVITY_SERVICE);
List<RunningTaskInfo> a = am.getRunningTasks(Integer.MAX_VALUE);
PackageManager pack = this.getPackageManager();
for(int i = 0; i < a.size(); i++) {
String packageName = a.get(i).topActivity.getPackageName();
Drawable d = null;
String appName = "";
try {
d = pack.getApplicationIcon(packageName);
appName = (String)pack.getApplicationLabel(pack.getApplicationInfo(packageName,PackageManager.GET_META_DATA));
} catch (NameNotFoundException e) {
e.printStackTrace();
}
packName.add(packageName); //arraylist of package name
apps.add(appName); // arraylist of app name
icons.add(d); //arraylist of icons
}
它对我有用但现在我正试图使用 killBackgroundProcesses 终止任务:
am.killBackgroundProcesses(package name);
它没有用。此外,API 级别 2.2 中提供了 killBackgroundProcesses 方法,那么我如何在以前的 API 级别(例如 1.6 等)中执行相同的任务。
有没有其他方法可以显示当前活动的应用并杀死它们?
【问题讨论】:
-
if(( this.getIntent()!= null)) { Boolean isLogout=this.getIntent().getBooleanExtra("close", false); if(isLogout) //完成(); android.os.Process.killProcess(android.os.Process.myPid()); }
-
我必须杀死任务而不是进程。它可以是当前正在运行的一项任务或所有任务。
-
等了30多个小时也没有得到任何适当的回复...... :(