微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Looper,flutterui套件

账号是如何被挤?又是如何跳转登录页面的?

终于,凶手露出了水面,凶手就是Looper,原来妹子是通过OkHttp拦截器来监听账号被挤,并通过Looper来弹出一个Toast提示,并且执行页面跳转逻辑,如下:

public class TokenInterceptor implements Interceptor {

private Context context;

//省略部分代码

@Override

public Response intercept(Chain chain) throws IOException {

Request request = chain.request();

Response originalResponse = chain.proceed(request);

String code = originalResponse.header(“code”);

if ("-1".equals(code)) { //账号被挤

Looper.prepare();

Toast.makeText(context, “你的账号在其它设备上登录”, Toast.LENGTH_LONG).show();

context.startActivity(new Intent(context, LoginActivity.class));

Looper.loop();

}

return originalResponse;

}

}

也许你会问,这确定有问题?通过Looper在子线程弹出一个Toast,这不是很正常的一件事?经常这么干,从来没出现任何问题,为啥到你这就出问题?

我让妹子把LooperToast代码注释掉,if语句里面只保留一行startActivity,妹子试后开心的跟我说,好了,没问题了,这怎么解释?

4、开始破案


Looper一脸委屈的说道:你说我是凶手,我就是凶手了,证据呢?

ok,我们就来寻找证据,我们知道,Looper.loop()方法内部,会开启一个死循环,如下:

public static void loop() {

//省略部分代码

for (;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐