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);
原文地址:https://www.cnblogs.com/androidsuperman/p/5610735.html