首先,我将简要介绍我的程序。
我正在尝试在Android Studio中构建销售点系统,目前我有4个活动,分别是登录活动,注册活动,忘记密码活动和主要活动。
基本上,当您在每个活动中使用Finish()
时,它将取消对该活动的所有操作,换句话说,您无法在Intent
之后返回上一个活动。
我想知道将Finish()
放在每个活动上,我可以对所有活动自动执行吗?
答案 0 :(得分:1)
您可以通过不保留任何回溯历史的方式来做到这一点。尝试下面的代码。
Intent i = new Intent("your intent stuff");
i.setFlags(i.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i)
或执行此操作的第二种方法,也可以通过在清单中添加标志来实现。在清单文件中添加以下代码。
android:noHistory="true"
您需要在应用程序标签中添加以上标签。
希望这会对您有所帮助。
答案 1 :(得分:1)
只需在开始活动之前将标志添加到意图中
在科特林
val intent = Intent(this, NewActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent)
在Java中
startActivity(new Intent(this, NewActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
答案 2 :(得分:0)
您可以添加它。并且清除所有先前的活动和数据。
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);