如何在Java中以编程方式强制停止Android应用程序?
如何在Java中以编程方式强制停止Android应用程序?
如何用Java强制停止一个应用程序?我正在尝试构建一个内存清理工具,可以帮助清理后台进程。
我知道有一种方法可以终止一个应用程序的进程,但是当你进入运行列表时,即使你已经终止了应用程序,它仍然还在那里。我已经尝试了很多类似的内存清理应用程序,只有一个应用程序可以完全强制停止应用程序,但它有很多无用的通知,非常令人讨厌。
附注:当你进入设置 -> 应用程序时,你会看到一个应用程序列表。点击其中一个应用程序,你会进入该应用程序的信息页面。那里有一个名为“强制停止”的按钮。点击它,应用程序就会被终止。我想在我的应用程序中执行这种操作。如何实现这一点?
问题的出现原因:需要在Java中编程实现强制停止Android应用程序。
解决方法:
尝试使用以下代码:
finish(); // 停止当前Activity // 添加这行代码以移除强制关闭 protected void onDestroy() { // 关闭整个应用程序 android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy(); }
也许这个解决方案可以帮到你:[Force Close an app programmatically](https://stackoverflow.com/questions/26186059)
如何使用Java编程强制停止Android应用程序?
在onDestroy()方法中获取应用程序的进程ID,并终止该进程。
public void onDestroy() { super.onDestroy(); int id = android.os.Process.myPid(); android.os.Process.killProcess(id); }
或者
getActivity().finish(); System.exit(0);
如果你想从你的活动中停止其他应用程序,可以使用以下方法:
可以使用以下方式发送信号:
Process.sendSignal(pid, Process.SIGNAL_KILL);
为了完全终止进程,推荐在发送信号之前调用:
ActivityManager.killBackgroundProcesses(packageNameToKill);
请注意,你的应用程序需要拥有KILL_BACKGROUND_PROCESSES权限。因此,在AndroidManifest.xml中,你需要包括:
我可以用这种方式终止其他应用程序吗?你能展示更多的代码片段吗?谢谢!
这将终止你的应用程序,而不是其他应用程序。
从Android M开始,你无法停止其他应用程序的进程。这完全取决于Android操作系统(除非你拥有root权限)。
请注意,如果在调用`finish()`之后的一行代码中调用`System.exit(0)`,`finish()`几乎没有效果。因此,如果你真的想强制退出,请在其他地方等待`onDestroy()`回调(例如,在应用程序类中监听生命周期事件)。但请注意,所有这些终止方法都非常激进,`Process`调用都会在服务被标记为`STICKY`时重新启动服务。
据我所知,如果在任务堆栈上有多个活动时发生这种情况,即使执行了所有这些步骤,Android也将重新启动应用程序,并显示下一个较低的活动 - 即使从任务堆栈的角度来看,它的行为就像你刚刚在当前活动上执行了`finish()`一样。