ARouter 拦截后跳转失败

flvtvl50  于 2022-10-24  发布在  其他
关注(0)|答案(6)|浏览(237)
public void process(Postcard postcard, InterceptorCallback callback) {

    String path = postcard.getPath();

    if (postcard.getExtra() == Configs.NEED_LOGIN_INTERCEPTOR) {

        if (LoginUtils.isLogin()) {

            callback.onContinue(postcard);

        }else {

            LogUtils.e("LoginInterceptor","拦截" + path);

            ARouter.getInstance().build(MyRouter.LOGIN_ACTIVITY).navigation(context, new NavigationCallback() {

                @Override
                public void onFound(Postcard postcard) {
                    LogUtils.e("LoginInterceptor","onFound" + postcard.getPath());
                }

                @Override
                public void onLost(Postcard postcard) {
                    LogUtils.e("LoginInterceptor","onLost" + postcard.getPath());
                }

                @Override
                public void onArrival(Postcard postcard) {
                    LogUtils.e("LoginInterceptor","onArrival" + postcard.getPath());
                }

                @Override
                public void onInterrupt(Postcard postcard) {
                    LogUtils.e("LoginInterceptor","onInterrupt" + postcard.getPath());
                }
            });
        }
    }else {
        LogUtils.e("LoginInterceptor","直接进入" + path);
        callback.onContinue(postcard);
    }
}`

这是拦截登录的代码,进app首页必须登录,拦截到会跳转到登录页。现在有一个现象,打开app再退出app,循环操作几次就会出现停留在闪屏页的bug。我把跳转回调里也打了log,出现bug的时候log打印了onFound(),没有继续下面的流程。我看日志也没有发现什么错误,请问怎么处理这个问题?

flmtquvp

flmtquvp1#

试试进入else后回调callback.onInterrupt终止拦截责任链呢

oyjwcjzk

oyjwcjzk2#

请进入else后重新callback.onInterrupt终止拦截责任链呢

我加了greenChannel()和callback.onInterrupt(null),代码: ARouter.getInstance().build(MyRouter.LOGIN_ACTIVITY).greenChannel().navigation(); callback.onInterrupt(null);
后来没有复现过,但我并不能确定这个问题有没有解决。

tcomlyy6

tcomlyy63#

加了就没问题了

8tntrjer

8tntrjer4#

加了就没问题了

上周五刚给你回复完,周末的时候这个问题又出现了一次。感觉是加了onInterrupt有效果,出现的几率小了,但好像并没有彻底解决问题,所以我现在有的迷茫

xxhby3vn

xxhby3vn5#

我页碰到这个问题,退出登录后App整个都不能跳转页面了,但是点击事件也进了 process方法, callback.onContinue(postcard);后app就动不了了,咨询下怎样解决这个bug

7xzttuei

7xzttuei6#

process执行的线程是子线程,建议切换到主线程进行操作

相关问题