美文网首页
上班第十三周

上班第十三周

作者: 寒冬_腊月 | 来源:发表于2020-08-05 09:19 被阅读0次

    任务

    1. 完成直播广告位,疾病标签引导需求
    2. 修复Android 7.x上当UI阻塞的时候,Toast显示崩溃问题

    项目中使用Java反射对WebView桥的封装

    1. 重写WebViewClient的onLoadResource方法
     @Override
        public void onLoadResource(WebView view, final String url) {
            //根据url获取对应要调用的方法名和参数
              final LightAppNativeRequest req = new LightAppNativeRequest(activity, reqString);
            //利用Java反射调用对应的方法,并传递相应的参数
            try {
                Method jsBridgeMethod = jsBridge.getClass().getMethod(method, LightAppNativeRequest.class, LightAppNativeResponse.class);
                jsBridgeMethod.invoke(jsBridge, req, resp);
            } catch (Exception e) {
            
            }
        }
    
    1. 使用泛型来初始化对就的jsBride对象
      公司相关使用组件化开发,有很多主工程,每一个主工程都对应一个Bride对象,这样就可以通过这个对象进行统一管理
    public abstract class LightAppActivity extends LightAppActivity<MedicalBridge> {
    }
    

    这里的MedicalBridge就是统一管理桥的对象

    解决Toast显示崩溃问题

    发现bugly有个下面的报错信息

    android.view.WindowManager$BadTokenException
        Unable to add window -- token android.os.BinderProxy@7f652b2 is not valid; is your activity running?
        android.view.ViewRootImpl.setView(ViewRootImpl.java:826)
        android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:369)
        android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
        android.widget.Toast$TN.handleShow(Toast.java:459)
    

    原因是如果 Toast在显示的时候UI阻塞了,就是会这个异常,这个问题只会在Android 8.0以下出现
    解决:
    替换了项目里面所有的Toast,使用使用blankj大神的工具库

    参考

    Toast问题深度剖析(一)

    相关文章

      网友评论

          本文标题:上班第十三周

          本文链接:https://www.haomeiwen.com/subject/ieyerktx.html