Intent Flag实际项目 -- 超时跳转登录界面并清理前面所有activity

时间:2023-03-09 07:39:14
Intent Flag实际项目 -- 超时跳转登录界面并清理前面所有activity

项目中涉及到登录超时跳转登录界面的逻辑,我以前的跳转flag为Intent.FLAG_ACTIVITY_CLEAR_TOP,但是点击返回按钮还是会回到上个界面。代码如下:

ActivityUtils.startActivityByFlag(context,
LoginActivity.class,
Intent.FLAG_ACTIVITY_CLEAR_TOP);

对应ActivityUtils里面代码:

 /**
* 从当前activity跳转到目标activity,<br>
* 如果目标activity曾经打开过,就重新展现,<br>
* 如果从来没打开过,就新建一个打开
*/
public static void startActivityByFlag(Context context, Class<?> cls, int flags) {
Intent intent;
intent = new Intent(context, cls);
intent.addFlags(flags);
context.startActivity(intent);
}

后来修改flag为Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK,问题解决:

ActivityUtils.startActivityByFlag(context,
LoginActivity.class,
Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);