我找到了一些以编程方式退出Android应用程序的代码。通过在onDestroy()中使用以下任何代码,它会完全退出应用程序吗?

System.runFinalizersOnExit(真正的) (或) android.os.Process.killProcess (android.os.Process.myPid ());

我不想在点击退出按钮后在后台运行我的应用程序。 请告知我是否可以使用这些代码中的任何一个来退出我的应用程序?如果可以,我可以使用哪个代码?在Android中退出应用程序是一个好方法吗?


当前回答

放弃一份申请是不受欢迎的吗?通过这个链接。它回答了你的问题。系统负责终止应用程序的工作。

假设你有两个活动A和B,你从A导航到B,当你点击返回按钮,你的活动B从背堆栈弹出并销毁。后堆栈活动A中的前一个活动集中。

您应该让系统决定何时终止应用程序。

公共无效处理()

当您的活动完成并应该关闭时调用它。

假设你有很多活动。你可以使用动作条。点击主页图标导航到应用程序的MainActivity。在MainActivity中单击返回按钮退出应用程序。

其他回答

@Sivi的回答关闭了应用程序。但返回时,如果你有一些子活动,另一个未完成的活动可能会打开。我添加了noHistory:true到我的活动,所以应用程序在返回时从MainActivity开始。

<activity 
      android:name=".MainActivity"
      android:noHistory="true">
</activity>

简单和简单的方法退出应用程序

Intent homeIntent = new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);

如果您确实需要关闭应用程序,请认真考虑一下:为什么不让操作系统自行决定何时何地释放资源呢?

否则,如果你非常确定,就用

finish();

作为对@dave appleton评论的回应:第一件事是阅读大问题/答案组合@gabriel的帖子:退出应用程序是不受欢迎的吗?

现在假设我们有了这个,这里的问题仍然有一个答案,如果你要做任何关于退出的事情,你需要的代码是finish()。显然你可以有不止一项活动等等,但这不是重点。让我们看一些用例

You want to let the user quit everything because of memory usage and "not running in the background? Doubtfull. Let the user stop certain activities in the background, but let the OS kill any unneeded recourses. You want a user to not go to the previous activity of your app? Well, either configure it so it doesn't, or you need an extra option. If most of the time the back=previous-activity works, wouldn't the user just press home if he/she wants to do something else? If you need some sort of reset, you can find out if/how/etc your application was quit, and if your activity gets focus again you can take action on that, showing a fresh screen instead of restarting where you were.

所以最后,当然,finish()不会杀死所有东西,但我认为它仍然是你需要的工具。如果有“杀死所有活动”的用例,我还没有找到。

getActivity().finish();
System.exit(0);

这是退出应用程序的最佳方式!!

对我来说最好的解决方案。

朋友只需添加此函数以编程方式退出应用程序 # java

public void onBackPressed() 
{

    finishAffinity();
    System.exit(0);
}