我正在尝试在 Android 中构建一个任务杀手类型的应用程序。我可以使用显示当前正在运行的任务列表活动管理器但在杀死任务时面临问题。
这是我正在做的获取当前正在运行的任务列表的操作:
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 中可用,那么我如何在以前的 API 级别(例如 1.6 等)中执行相同的任务。
还有其他方法可以显示当前活动的应用程序并杀死它们吗?
除了 Android 操作系统本身之外,没有人可以杀死进程。
Android 市场上的大多数任务杀手不会杀死应用程序,它们只是重新启动进程
通过使用
public void restartPackage (String packageName)
当您的活动调用此方法时,操作系统立即调用
savedInstanceState
并保存您要终止的活动的状态。现在这个过程是
从内存中删除,操作系统保存了它的状态。现在,当用户下次启动该活动时,它
将从被杀死的地方开始,或者换句话说,重新启动。您可以从任何地方验证它
任务管理器认为他们不会终止该进程,因为没有人可以这样做。这个方法还
在 ICS 工作。
对于上面的方法你可以看看here。据我所知killBackgroundProcesses (String packageName)
适用于 API 8 及以上版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)