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 (;

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...