240 发简信
IP属地:上海
  • 如何让多个线程顺序执行

    先说一下为什么会有这样的要求,如果是简单的要求按顺序执行代码,直接一行行写下来就行了。但是接口调用我们一般都放在工作线程里面,而且有时候需要拿一...

  • Service 的两种启动方式和「Service 与 Activity 数据交互」

    1. Service 的两种启动方式 Activity 中可以有两种方式启动 Service,不同方式启动时 Service 的生命周期也不一样...

  • Handler 消息机制以及内存泄漏

    1. 消息机制 1.1 post系列 通过查看源码可知,post(Runnable r)、postDelayed(Runnable r, lon...

  • Handler 中的 handleMessage 所在线程是由什么决定的?

    大多数情况下,handleMessage所在线程和 handler 初始化所在的线程相同,但 handler 初始化的时候可以传入一个 Loop...

  • RxJava2 + Retrofit2 结合使用详解

    不讲 rxjava 和 retrofit 而是直接上手 2 了,因为 2 封装的更好用的更多。 1. 观察者模式 常见的 button 点击事件...

  • Android 水印相机开发

    水印相机是自定义相机的一种,实现方法有很多,我看了很多别人的做的很漂亮,我做的就很普通了,不过总算是实现了拍照加水印的功能。 我这边用到了Sur...

  • Dagger2 中的 SubComponent

    两个 Component 之间除了 dependencies 依赖方式以外,还可以使用 SubComponent 方式。比如说 SeeCompo...

  • Dagger2 中的 Scope、dependencies

    Scope中文意思是范围,Dagger2 中的@Singleton是 Scope 的一种默认实现,点进去可以看到: 上面是 Java 方式,如果...

  • Dagger2 中的 Qualifier

    Dagger2 中创建实例对象有两种方式: Inject 维度:通过用 Inject 注解构造函数 Module 维度:通过工厂模式的 Modu...