240 发简信
  • 120
    极简耗时方法检测器

    原理 开启一个异步线程,每过一段时间(比如100ms)就去获取主线程的栈帧如果当前栈帧和上一个栈帧一样,就说明主线程阻塞了,就打印当前的栈帧 注...

    0.4 97 0 3
  • kotlin DSL 简单示例

    案例场景 当接口的方法过多,而我们只需要其中一个方法时,例如TextView.addTextChangedListener,我们只需要它的onT...

  • 一个简单的响应式用例

    一个简单的响应式用例 背景 今天在重构网络库初始化的时候,发现每次用户cookie变化,都会重新初始化网络库 究其原因,是因为网络库的网络拦截器...

  • Flutter踩坑记录

    1.Flutter的UI开发【1+1+0.5=2.5】轮播图和自定义指示器【耗时1天】布局越界问题,布局的宽度高度无效等问题【耗时1天】Flut...

  • 120
    RecycleView.Adapter的封装思路

    最终成品库已上传到Jcenter: 可能还没有通过审核,可以连接我的maven仓库: 一、几种常见列表效果 假如要用RecyclerView实现...

    2.6 433 0 13
  • 异步任务的极简处理

    使用示例 实现机制:泛型方法+高阶函数 它有默认的错误处理,也可以自定义错误处理,默认的话,只是打印一下错误,可以自己重写errorHandle...

    0.5 57 0 1
  • 使用拓展方法+内联函数,干掉模板代码

    使用拓展方法+内联函数前 使用拓展方法+内联函数后 实现原理 看上面的简化写法,你一定会有两个疑问: viewPager哪来的addListen...

  • 像对象一样操作SP

    像对象一样操作SP 一、使用示例 1.在PreferenceManager中添加需要存进SP的字段 2.存值 3.取值 二、原理 1.使用属性代...

  • 告别臃肿的Contract接口,kotlin实现极简MVP

    以前,我们参考google的官方示例实现MVP,需要定义一个Contract契约类,View和Presenter之间都通过契约类来进行通讯。 例...

个人介绍
阅读、思考、记录