Android 在这种情况下,我应该使用FLAG\u ACTIVITY\u CLEAR\u TOP吗?如何使用标志\活动\清除\顶部意图标志?
在我的应用程序中,我有以下Android 在这种情况下,我应该使用FLAG\u ACTIVITY\u CLEAR\u TOP吗?如何使用标志\活动\清除\顶部意图标志?,android,kotlin,android-intent,android-activity,Android,Kotlin,Android Intent,Android Activity,在我的应用程序中,我有以下活动流程: LoginActivityDashboardActivity>(如果用户选择更改密码)>ChangePasswordActivity 如果用户成功更改了密码,我想将其发送回第一个活动,即LoginActivity。我希望在此过程中弹出仪表板活动,以防止任何不必要的延迟活动 在这种情况下,使用FLAG\u ACTIVITY\u CLEAR\u TOP启动新的LoginActivity是否正确?我想知道在这种情况下哪些标志是合适的 值得一提的是,我的仪表板活动在
活动
流程:
LoginActivity
DashboardActivity
>(如果用户选择更改密码)>ChangePasswordActivity
如果用户成功更改了密码,我想将其发送回第一个活动,即LoginActivity
。我希望在此过程中弹出
仪表板活动
,以防止任何不必要的延迟活动
在这种情况下,使用FLAG\u ACTIVITY\u CLEAR\u TOP
启动新的LoginActivity
是否正确?我想知道在这种情况下哪些标志是合适的
值得一提的是,我的仪表板活动
在我的AndroidManifest
中将启动模式
设置为singleTop
如果您只想从堆栈和中清除以前的活动
启动登录活动只需执行此操作
在清单
文件中,您的登录活动应如下所示
<activity
android:name=".LoginActivity"
android:screenOrientation="portrait"/>
通过将标志设置为Intent.flag_ACTIVITY_NEW_TASK | Intent.flag_ACTIVITY_CLEAR_TASK
所有以前的活动都将从堆栈中清除
有关更多信息,请查看此
从官方文档中-标记活动\u清除\u顶部
如果已设置,则正在启动的活动已在中运行
当前任务,而不是启动该任务的新实例
活动,其上的所有其他活动都将关闭,并且
此意图将作为一个整体传递给(现在位于顶部)旧活动
新的意图
例如,考虑一个由活动组成的任务:A、B、C、D. 如果D调用startActivity()的目的是解决 活动B的组件,然后C和D将完成,B将收到 给定的意图,导致堆栈现在为:A,B
LoginActivity>DashboardActivity>(如果用户选择更改密码)>ChangePasswordActivity- 为了明确后勤活动的任务和意图,您应该使用 intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK | intent.FLAG_ACTIVITY_CLEAR_TASK)
- FLAG_ACTIVITY_CLEAR_TOP将清除堆栈中的所有内容并生成 将新活动作为根任务。在您的情况下,没有以前的 后勤活动也可以,但不可取
- 虽然您在这里获得了“LaunchMode”的详细信息,但它在您的情况下不会有用
- 也检查 详情
Intent intent = new Intent(ChangePassword.this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();