单击退出按钮时,我需要完成在Android应用程序中运行的所有活动.我怎样才能做到这一点?
我想要的是:
Eri*_*ski 38
如何为用户创建一个按钮,以立即完成所有活动
当用户希望退出所有打开的活动时,让他们按下一个按钮,该按钮加载应用程序启动时运行的第一个活动(传递清除所有其他活动的意图).然后在剩下的一个活动(LoginActivity)中,在onCreate中放置一些代码,让它选择自毁.
细节:
创建一个按钮并将其命名为"exit",为该按钮创建一个buttonlistener,并将以下代码放在那里.它的作用是加载活动,通过清除活动下面的所有活动使其成为唯一剩余的活动.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
上面的代码清除了LoginActivity下的所有活动.LoginActivity必须是您的应用运行的第一个活动.所以现在我们只剩下LoginActivity激活了.现在我们必须让LoginActivity检查putExtra参数,如果它具有值"EXIT",那么也要自行销毁.
将以下代码放在LoginActivity的onCreate和onResume中,检查"EXIT"参数并在看到时完成:
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Run Code Online (Sandbox Code Playgroud)
为什么这么难,为什么不存在exitAllActivites()函数?
Android操作系统开发人员很难做到这一点,因为他们不希望您为用户提供"退出"按钮.他们希望用户永远不关心他们的App是否正在运行.如果他们想要它,他们运行它,如果他们不想要它,他们就会停止使用它.这个模型有一些好处,因为这样一个应用程序可以被销毁,为电话和大量的地图使用腾出空间,然后他们重新运行你的应用程序,他们就在他们离开的地方继续,而不是必须重新启动从头开始.
因此,如果您使用此代码,请尝试与Android开发人员的Android愿景合作,并使其在任何时候都可以销毁/重新创建应用程序,并且用户始终会从中断的地方继续.要求用户"退出"是一件麻烦事.
使用StartActivityForResult函数启动新的Activity,当用户按EXIT按钮时,发送一个唯一值作为resultcode.resultcode在onActivityForResultfunc中检查这一点,如果找到相同的唯一代码,则完成活动.
小智 6
我不明白那些不应该这样做的人.使用内置方法可以非常轻松地完成关闭活动.
官方文档中没有任何地方说不应该这样做.
对于那些认为不应该为任何目的而做的人,也许你想不出这样做的理由.这样做有很多合理的理由.由于它是Android代码内置的方法,因此Google还决定您可能需要依赖于您的使用.并非所有人都只为Android创建消费者应用程序.
因此,要完成此任务,请关闭堆栈中的所有活动
public void quitApp(){
this.finishAffinity();
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个作为默认启动器运行的自助服务终端应用程序.所以我需要一种方法来退出应用程序以获取设备上的设置或其他应用程序.因此,在管理员活动中,我放置了一个引脚号码垫...在用户输入正确的引脚后,应用程序需要退出到原始启动器.我用了上面的代码.
您不应在Android应用程序中实现退出按钮。
干杯
| 归档时间: |
|
| 查看次数: |
33431 次 |
| 最近记录: |