完全退出安卓应用
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/…以上是关于完全退出安卓应用的主要内容,如果未能解决你的问题,请参考以下文章