Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不通过按后退按钮关闭android应用程序_Java_Android - Fatal编程技术网

Java 不通过按后退按钮关闭android应用程序

Java 不通过按后退按钮关闭android应用程序,java,android,Java,Android,可能重复: 我正在尝试使用手机的后退按钮关闭应用程序。目前,我正在重写onKeyPressed方法并调用moveTaskToBack(true)。它会隐藏应用程序,但不会关闭它。它仍然留在记忆中。如何通过按后退按钮关闭应用程序 这是我的密码 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { moveTaskTo

可能重复:

我正在尝试使用手机的后退按钮关闭应用程序。目前,我正在重写
onKeyPressed
方法并调用
moveTaskToBack(true)。它会隐藏应用程序,但不会关闭它。它仍然留在记忆中。如何通过按后退按钮关闭应用程序

这是我的密码

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
System.exit(0)
关闭整个应用程序。
finish()
是关闭当前活动的另一个片段。

系统。退出(0)
关闭整个应用程序。
finish()
是关闭当前活动的另一个片段。

-使用
System.exit(0)
关闭你的应用程序在后退按钮,这对java应用程序非常有用,同样适用于Android,但是建议使用以下方法。


finish()


finish()

finish() 
因为系统。退出(0)是。
这也将从应用程序中退出。

如果要退出应用程序,请编写以下内容:

finish() 
因为系统。退出(0)是。
这也将从应用程序中退出。

推送新活动时,请在上一个活动上调用finish(),否则它将保留在堆栈中,因此在回击并弹出当前活动时出现

推送新活动时,在上一个活动上调用finish(),否则它将保留在堆栈上,因此在回击并弹出当前活动时出现

我认为这样做更安全
this.finish()取而代之

System.exit(0)
不推荐,最好让
Android
来管理应用程序


检查此链接:

我认为这样做更安全
this.finish()取而代之

System.exit(0)
不推荐,最好让
Android
来管理应用程序


检查此链接:

您不需要。嗯,不完全是

应用程序的生命周期是以这样一种方式进行的,即处于后台是正常的,也是预期的。这允许应用程序在用户需要时快速恢复到前端,并允许Android进行内存管理。您有一些特殊的方法,如
onPause()
onResume()
来帮助您处理此问题

除此之外,
finish()
将关闭当前活动并将其从堆栈中删除,而
System.exit(0)
将关闭应用程序


你应该阅读Commonware(MarkMurphy)对这个问题的一个很好的回答,因为它解决了让Android将你的应用程序保留在内存中的许多原因。

你没有。嗯,不完全是

应用程序的生命周期是以这样一种方式进行的,即处于后台是正常的,也是预期的。这允许应用程序在用户需要时快速恢复到前端,并允许Android进行内存管理。您有一些特殊的方法,如
onPause()
onResume()
来帮助您处理此问题

除此之外,
finish()
将关闭当前活动并将其从堆栈中删除,而
System.exit(0)
将关闭应用程序


你应该阅读Commonware(Mark Murphy)对这个问题的一个很好的回答,因为它解决了让Android将你的应用程序保留在内存中的许多原因。

你应该能够使用
finish()
关闭你的应用程序。
然而,如果这是由于内存管理,我宁愿使用android自己的内存管理。实际上相当不错。如果需要释放内存,它会定期删除暂停的应用程序。除非它是一个服务,否则它不应该在堆栈中占用太多内存。但是也有例外。

您应该能够使用
finish()
关闭您的应用程序。
然而,如果这是由于内存管理,我宁愿使用android自己的内存管理。实际上相当不错。如果需要释放内存,它会定期删除暂停的应用程序。除非它是一个服务,否则它不应该在堆栈中占用太多内存。但是也有例外。

请不要告诉我,但我相信onbackpressed现在是推荐的方法。是的,完成();应该很好用

别瞒着我,但我相信onbackpressed现在是推荐的方法。是的,完成();应该很好用

这是正确的行为。为什么要关闭应用程序?在几乎所有情况下,你都应该让Android处理内存管理和应用程序关闭。这是正确的行为。为什么要关闭应用程序?在几乎所有情况下,你都应该让Android处理内存管理和应用程序关闭。我使用System.exit(0);退出我的应用程序@DineshVenkata你有什么解决办法吗?你给出了否定的观点吗?工作正常。请查看从未建议您使用System.exit(0)的文档,因为它不是活动生命周期的一部分,因为您应该始终是一个好的Android公民。当Android能够自行管理内存和加载/卸载应用程序时,它的工作会更好(更快)。很少需要System.exit(),这是一种不好的做法,仅仅因为你可以这样做并不意味着你应该这样做。事实上,他否决了我的评论@simonSorry,我的评论是针对Hardik的。我使用System.exit(0);退出我的应用程序@DineshVenkata你有什么解决办法吗?你给出了否定的观点吗?看一看我写的文件