我有 OnBoard Activity 和登录 Activity 。在成功登录后的 LoginActivity 中,我尝试使用以下代码清除板载 Activity :
startActivity(new Intent(context, HomeActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_CLEAR_TASK));
我什至尝试过 Intent.FLAG_ACTIVITY_NO_HISTORY
但它也不起作用。那我该怎么办呢?
最佳答案
我假设应用程序以 OnboardActivity
开始,然后以 LoginActivity
开始,然后您想清除它们并启动 HomeActivity
?
如果是这样的话,我会这样做:
OnboardActivity
使用startActivityForResult()
启动LoginActivity
。LoginActivity
返回指示登录是否成功的结果并调用finish()
。LoginActivity
不再在任务中。OnboardActivity
检查OnActivityResult()
中的结果,如果登录成功,则启动HomeActivity
(不需要标志)并调用finish()
本身。- 此时
LoginActivity
和OnboardActivity
都没有了,HomeActivity
是唯一的Activity
任务。
关于android - 何时使用 addFlags 或 setFlags 来移除堆栈中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55468238/