Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中杀死一个顽固的进程?_Android_Process_Kill - Fatal编程技术网

如何在Android中杀死一个顽固的进程?

如何在Android中杀死一个顽固的进程?,android,process,kill,Android,Process,Kill,我有一个未安装的Android 2.3.4设备,我使用的应用程序不是我的应用程序,它有时会开始发疯,毫无理由地使用100%的cpu电源。这是一个bug,它会很快耗尽电池电量,也会大大降低设备的速度。我可以使用taskkiller来结束它,但这不是一个真正的选项,所以我制作了一个应用程序来监控另一个应用程序,并在它检测到太疯狂的cpu使用时尝试结束它 我现在面临的问题是如何结束该应用程序。我尝试了以下4种方法,但不幸没有成功: ActivityManager actvityManager = (A

我有一个未安装的Android 2.3.4设备,我使用的应用程序不是我的应用程序,它有时会开始发疯,毫无理由地使用100%的cpu电源。这是一个bug,它会很快耗尽电池电量,也会大大降低设备的速度。我可以使用taskkiller来结束它,但这不是一个真正的选项,所以我制作了一个应用程序来监控另一个应用程序,并在它检测到太疯狂的cpu使用时尝试结束它

我现在面临的问题是如何结束该应用程序。我尝试了以下4种方法,但不幸没有成功:

ActivityManager actvityManager = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
actvityManager.killBackgroundProcesses(packagename);

android.os.Process.sendSignal(pid, android.os.Process.SIGNAL_KILL);

android.os.Process.killProcess(pid);

actvityManager.restartPackage(packagename);
我可以使用一个常规的taskkilling工具来结束它,我验证了这一点,但我希望自己通过编程来完成,而不是通过其他方式。我的意思是重新启动,不使用应用程序

我怎样才能结束这样一个过程


PS:我知道在正常情况下进程的终止应该留给Android,但在这种情况下这显然是不够的,所以我需要自己处理

您是否设置了在清单中杀死后台进程的权限?您如何确保进程实际上锁定了系统?我希望您不仅仅是检查CPU使用是否超过了某个限制并终止它。是的,我设置了权限“android:name=android.permission.KILL_BACKGROUND_PROCESSES'>和“android.permission.REORDER_TASKS”。我在32秒内的8秒间隔内检查cpu使用情况,测试当前的cpu使用率,以及整个时间超过75%的cpu使用率和其他一些参数。我的建议是:删除该应用程序并找到替代方案。然后向开发人员发送错误报告。不幸的是,这不是一个选项,因为我无法卸载它。它是随设备提供的,现在是,将来也将是未安装的,而且它实际上是一个非常好的应用程序,我也希望继续使用。否则我一开始就不会走这么远。