完全退出安卓应用

Posted

技术标签:

【中文标题】完全退出安卓应用【英文标题】:Exit completely from android app 【发布时间】:2014-08-19 23:13:44 【问题描述】:

我想通过单击退出按钮退出整个应用程序。实际上我使用的是退出按钮而不是注销。因此,每当用户单击它时,它应该完成整个应用程序,但它只会破坏最后运行的活动。我现在该怎么办? 我在我的代码中使用这种方法,任何帮助将不胜感激,在此先感谢。

         public void exit(View v)
                finish();
                System.exit(0);
            

我也使用了以下代码,但它只会杀死最后运行的活动,而不是完整的应用程序。

             public void exit(View v)
                android.os.Process.killProcess(android.os.Process.myPid());
                System.exit(1);
            

【问题讨论】:

除非您有充分的理由,否则您不应该这样做。它是反安卓的,会惹恼用户并且对性能没有任何帮助。全方位的坏主意。 是的,我有理由这样做 .. 我知道 .. 你是对的,但没有任何事情按照它应该工作的方式工作 :( 【参考方案1】:

还有另一种方法可以完全杀死您的应用。最小化它,Android系统会在必要时自动杀死它。为此,

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

此外,这个 SO 问题可能会有所帮助:How to close android app completely

【讨论】:

thnx.. 更好.. :)【参考方案2】:

如果你真的,真的必须这样做:

public void exit(View v)
    finish();
    android.os.Process.killProcess(android.os.Process.myPid());

【讨论】:

汉斯它带我回到上一个活动..我的意思是它只破坏了一个活动,而不是完整的应用程序:( 啊,现在我明白你想要什么了。即使在您的应用退出后,活动返回堆栈也包含您的旧活动。如果您退出最顶层的活动,甚至终止应用程序,则之前的活动将重新打开。为避免这种情况,您需要实现以下内容:***.com/a/19109602/414285 汉斯它不适合我.. :( 不知道为什么可能有一些问题【参考方案3】:

永远不要在 Android 应用上放置退出按钮。

在这里阅读:

Closing Application with Exit button

【讨论】:

【参考方案4】:

如果最低 sdk 版本为 21 及以上。

finishAndRemoveTask()

因此,即使从任务列表中,应用程序也会完全关闭。

【讨论】:

【参考方案5】:

我认为 Hans Kratz 提出的解决方案不是最好的,因为它可能会导致问题,因为资源不会首先最终确定。相反,您应该使用以下代码安全地终止您的应用程序:

public void exit(View v)
     System.runFinalizersOnExit(true);
     System.exit(0);

但真的要三思而后行,因为这不是 Android 应用程序通常的工作方式。

【讨论】:

是的,我知道,但时间太短了,这就是我考虑这个的原因......这段代码和 Hans 做的一样......只破坏最后一个正在运行的活动......应用程序是仍在运行:( 好的,现在我知道你在找什么了。请查看以下帖子中接受的分析器的解释:***.com/questions/2092951/…

以上是关于完全退出安卓应用的主要内容,如果未能解决你的问题,请参考以下文章

山寨苹果手机怎么一按home键,全部应用就完全退出了?

安卓手机欧朋浏览器怎么退出全屏

android怎样点击两下退出程序

为啥我的 MFC 应用程序无法完全退出?

Android-完全退出当前应用程序的四种方法

关于退出应用程序的问题(保存数据和加载数据)