2011-07-28 14 views
1

我正在写一个任务管理器服务,需要强制关闭任何正在运行的进程,可以说浏览器,我尝试使用killBackgroundProcesses,restartPackage,killProcess但这些强制关闭进程(例如浏览器)时没有任何进程在前面否则他们在工作中。如何强制停止启动过程甚至在前台运行?

我想强行停止过程即使在过程上运行。 我现在应该做什么?

回答

2

了,我想你。我这个问题,即杀害背景process.So每当我需要杀死在前台运行的,我只是把我的活动在foreground.So过程中要处理的服务中使用的方法自动杀死后台并可以用killBackgroundProcess来杀死。

但可以肯定这是不是一个真正的好的做法

+0

可我的任何处理(比如浏览器)发送到后台? ,因为无论何时我将运行进程发送到后台,我的服务都会在没有前台进程的情况下杀死该进程。 – Rony

+0

你can.If你把你的程序在前台,然后以前的前台进程会自动回到 – Rasel

+0

推倒了现在的工作,我把家里的活动在前面 – Rony

3

解决,这里是代码:

Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 
Appmgr.killBackgroundProcesses(RunningP.processName); 
+0

感谢这个,罗尼。我必须补充说,这个解决方案可能产生后台任务的另一个克隆任务,因为你的标志被设置为'NEW_TASK'。我将我的标志设置为'FLAG_ACTIVITY_CLEAR_TOP',我的Activity具有'android:launchMode =“singleTop”'属性,所以我的Activity是为应用程序生成的单个任务。也不需要'CATEGORY_HOME'类别,没有它的工作(现在)。 – soulseekah

相关问题