我如何关闭/退出我的应用程序按钮?

时间:2010-11-23 20:08:56

标签: android

我有一个按钮,可以使用以下代码关闭我的应用程序:

结束();

问题是这个按钮没有退出我的应用程序...它只是关闭当前意图蚂蚁返回到我的应用程序的先前意图(窗口)....

我怎么能做一个真正的退出/关闭按钮?

我尝试了这个:

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

但它不起作用,因为当我回到我的应用程序时,应用程序进入最后打开的窗口,而不是在应用程序的第一个窗口中,我该怎么做?我需要当我重新打开我的应用程序时,它会从我的应用程序的第一个窗口开始

6 个答案:

答案 0 :(得分:2)

默认情况下,Android的设计不支持退出应用程序,而是允许操作系统管理它。您可以通过相应的Intent:

打开Home应用程序
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

答案 1 :(得分:1)

如果你真的想让你的应用程序死掉。您可以使用startActivityForResult()启动每个intent。然后在每个finish()之前设置结果以发回。在每个父活动中,您可以覆盖onActivityResult()以测试接收的结果是否意味着应用程序需要结束。如果是这样,你可以调用另一个设置结果并完成()。在所有活动中重复此操作,您会发现您的应用程序完全终止。

顺便说一句,我是从记忆中写的。函数名称可能不准确。

希望有所帮助。

P.S。重新阅读您的要求。你总是可以在第一次活动时停止完成循环。

答案 2 :(得分:1)

我会这样做:

  • 我将使用启动模式singleTop
  • 定义我的初始活动(即MainMenu)
  • 然后,我会从将要关闭应用程序的活动中调用我的MainMenu。

    startActivity(new Intent(this,MainMenu.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra(“closeProgram”,true);

  • 然后覆盖MainMenu活动中的 onNewIntent ;检查“closeProgram”的额外布尔值,如果值为true,则执行finish();

没试过,但我认为它应该有用。

答案 3 :(得分:1)

我建议你阅读:http://blog.radioactiveyak.com/2010/05/when-to-include-exit-button-in-android.html

有可能,您不需要退出按钮。也许是退出按钮,但就是这样。

答案 4 :(得分:0)

finish()关闭活动(这就是你所说的意图,但它不正确),而不是应用程序。应用程序根本无法完成(只有像任务杀手一样强行杀死)。您应该设计activity stack以满足您的需求。也许你应该看一下ApiDemos中的堆栈重排示例。

答案 5 :(得分:0)

你可以试试这个:System.exit(0);