退出android应用程序

退出android应用程序,android,android-emulator,Android,Android Emulator,如果有多个活动处于活动状态,如何关闭android应用程序?答案很简单:你真的不需要“关闭”android应用程序。如果不再显示任何活动,系统将在一段时间后终止该进程。用户可以按“后退”按钮关闭活动。Reto Meier在这里很好地解释了这一点: 您可能还想阅读此线程;至少可以这样说,这是非常有帮助的:一旦您的最后一个活动失去焦点,Android将根据当前系统需求/免费资源卸载您的进程。 你不应该真的关心这个-只要使用生命周期启动、停止等等。。。管理您的状态。好吧,您不应该关闭应用程序,因为系统

如果有多个活动处于活动状态,如何关闭android应用程序?

答案很简单:你真的不需要“关闭”android应用程序。如果不再显示任何活动,系统将在一段时间后终止该进程。用户可以按“后退”按钮关闭活动。Reto Meier在这里很好地解释了这一点:

您可能还想阅读此线程;至少可以这样说,这是非常有帮助的:

一旦您的最后一个活动失去焦点,Android将根据当前系统需求/免费资源卸载您的进程。
你不应该真的关心这个-只要使用生命周期启动、停止等等。。。管理您的状态。

好吧,您不应该关闭应用程序,因为系统会管理它。有关更多信息,请参阅其他答案中的帖子/主题

但是,如果您真的非常想,您仍然可以调用
System.exit(0)类似于任何其他Java应用程序

编辑

我想起来了。我试图使用此代码重新启动我的应用程序,但它只成功地杀死了我的应用程序。你可以试试看它是否适合你。

一篇题为“如何退出Android应用程序”的博客文章:

当用户希望退出所有打开的活动时,他们应该按下一个按钮,加载应用程序启动时运行的第一个活动,在我的例子中是“LoginActivity”

上述代码清除除LoginActivity之外的所有活动。LoginActivity是用户运行程序时启动的第一个活动。然后将此代码放在LoginActivity的onCreate中,以指示在传递“Exit”消息时它何时应该自毁

    if (getIntent().getBooleanExtra("EXIT", false)) {
        finish();
    }
几周前我问了一个类似的问题。仔细阅读答案和评论,以获得更多的观点和可能的解决方案


IMO退出应用程序取决于应用程序的功能和用户期望。虽然我理解不使用“退出”按钮的理由,但我也相信这是应用程序设计师必须根据情况做出的选择。

我找到了一个简单的解决方案

在“活动”中,按下“退出”按钮,使用以下源代码转到第一个活动。请阅读有关标记活动的文档

Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);

现在使用finish()覆盖第一个活动的onResume()

如果您想退出一个Android活动,这将使您从当前活动的特定位置返回到上一个活动或另一个活动

finish();
System.exit(0);

处于活动状态是什么意思?我终于可以退出应用程序了。将更新我遵循的方法,因为我使用了以下三个步骤:1)使用startActivityForResult(..)而不是startActivity 2)当按下退出按钮时,写入以下设置结果(结果\u关闭\u全部);完成();3) @Override protected void onActivityResult(int requestCode,int resultCode,Intent data){switch(resultCode){case RESULT_CLOSE_ALL:setResult(RESULT_CLOSE_ALL);finish()}super.onActivityResult(requestCode,resultCode,data);}这是真的。但是需要注意的是,这个调用可能是危险的,特别是当多个线程处于活动状态时。这些将被阻止。可能会发生(Murphy说会发生)线程停止在开发人员不希望出现的状态,这可能会导致数据损坏…@mreichelt,这就是为什么我写了真的,真的:)@dsc,你确定吗?我相信它应该有用…@Shade它对我不起作用…如果你这么肯定的话,我会再检查一遍。可能是我的应用程序的其他错误:(@Shade看到了你的答案..但这不是正确的方法。当我使用startActivityForResult而不是startActivity时,我能够退出app@Shade我可以使用该方法重新启动我的应用程序如果你想要简单的解决方案,请检查我的答案Hi@dsc。我如何找到第一个活动?我有一个媒体播放器应用程序。它在not提示。当用户点击通知时,它会显示播放器屏幕。我还有一个主屏幕。如何在后堆栈中找到第一个活动?@syloc:first activity表示在应用程序启动时显示的活动。您也可以使用ActivityManager ActivityManager=(ActivityManager)找到第一个活动getSystemService(Context.ACTIVITY_服务);List taskInfo=activityManager.getRunningTasks(1);ComponentName componentInfo=taskInfo.get(0).baseActivity;假设我在主屏幕上启动了应用程序。然后播放一首歌曲,歌曲现在出现在通知中。然后我按“上一步”按钮,直到返回到android主屏幕。然后我单击通知并再次进入应用程序。但这是第一个活动成为播放器屏幕。@syloc:编辑了我以前的评论,componentInfo将始终返回堆栈中的第一个活动。
Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
finish();
System.exit(0);