我有一个按钮,可以使用以下代码关闭我的应用程序:
结束();
问题是这个按钮没有退出我的应用程序...它只是关闭当前意图蚂蚁返回到我的应用程序的先前意图(窗口)....
我怎么能做一个真正的退出/关闭按钮?
我尝试了这个:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
但它不起作用,因为当我回到我的应用程序时,应用程序进入最后打开的窗口,而不是在应用程序的第一个窗口中,我该怎么做?我需要当我重新打开我的应用程序时,它会从我的应用程序的第一个窗口开始
答案 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)
我会这样做:
然后,我会从将要关闭应用程序的活动中调用我的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);