如何在Java中以编程方式强制停止Android应用程序?

17 浏览
0 Comments

如何在Java中以编程方式强制停止Android应用程序?

如何用Java强制停止一个应用程序?我正在尝试构建一个内存清理工具,可以帮助清理后台进程。

我知道有一种方法可以终止一个应用程序的进程,但是当你进入运行列表时,即使你已经终止了应用程序,它仍然还在那里。我已经尝试了很多类似的内存清理应用程序,只有一个应用程序可以完全强制停止应用程序,但它有很多无用的通知,非常令人讨厌。

附注:当你进入设置 -> 应用程序时,你会看到一个应用程序列表。点击其中一个应用程序,你会进入该应用程序的信息页面。那里有一个名为“强制停止”的按钮。点击它,应用程序就会被终止。我想在我的应用程序中执行这种操作。如何实现这一点?

force stop example

0
0 Comments

问题的出现原因:需要在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)

0
0 Comments

如何使用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()`一样。

0