王学岗RxJava(17)————实现图片的下载
来源:互联网 发布:indesign cs4 mac 编辑:程序博客网 时间:2024/05/29 19:25
第一步:初始化
第二步:下载
第三步:图片相关处理
第四步:更新
总结:
线程 第一点:看一个下载案例 登录案例 第二点:学习Scheduler基本API Scheduler:调度器,相当于线程控制器 Schedulers.immediate():运行在当前线程 Schedulers.newThread():运行在新的线程(子线程) Schedulers.io():I/O 操作(读写文件、读写数据库、网络信息交互等) Schedulers.computation():计算所使用的Schedulers。这个计算指的是 CPU 密集型计算,即不会被 I/O 等操作限制性能的操作,例如图形的计算 Schedulers.trampoline():在当前线程中的工作放入队列中排队,并依次操作 Schedulers.test():用于测试目的,支持单元测试的高级事件 Schedulers.from(executor):使用指定的Executor作为Scheduler AndroidSchedulers.mainThread():RxAndroid中用于支持Android主线程 第三点:subscribeOn和observeOn线程控制的区别?--线程切换 注意一:在RxJava中整个流程分为事件的生产和消费 注意二:记得之前分析过RxJava整体架构分为四个角色: 注意三:Observable、Observer、Subscriber、Subjects 注意四:其中Observables和Subjects是两个“生产”实体, Observers和Subscribers是两个“消费”实体 区别一: subscribeOn:指定生产事件所在的线程 observeOn:指定消费事件所在的线程 区别二: subscribeOn:按照顺序执行序列,作用于他前后的序列,之道遇到了observeOn才切换新的线程 observeOn:按照顺序执行序列,只能作用于他之后的序列 注意:subscribeOn可以在序列中调用(执行)多次,但是有前提条件(你必须要在生产序列之前调用,在访问网络之前,我们需要初始化一些UI)
补充:
不仅基本使用方式一样,实质上,在 RxJava 的 subscribe 过程中,Observer 也总是会先被转换成一个 Subscriber 再使用。所以如果你只想使用基本功能,选择 Observer 和 Subscriber 是完全一样的。它们的区别对于使用者来说主要有两点:
onStart(): 这是 Subscriber 增加的方法。它会在 subscribe 刚开始,而事件还未发送之前被调用,可以用于做一些准备工作,例如数据的清零或重置。这是一个可选方法,默认情况下它的实现为空。需要注意的是,如果对准备工作的线程有要求(例如弹出一个显示进度的对话框,这必须在主线程执行), onStart() 就不适用了,因为它总是在 subscribe 所发生的线程被调用,而不能指定线程。要在指定的线程来做准备工作,可以使用 doOnSubscribe() 方法,具体可以在后面的文中看到。
unsubscribe(): 这是 Subscriber 所实现的另一个接口 Subscription 的方法,用于取消订阅。在这个方法被调用后,Subscriber 将不再接收事件。一般在这个方法调用前,可以使用 isUnsubscribed() 先判断一下状态。 unsubscribe() 这个方法很重要,因为在 subscribe() 之后, Observable 会持有 Subscriber 的引用,这个引用如果不能及时被释放,将有内存泄露的风险。所以最好保持一个原则:要在不再使用的时候尽快在合适的地方(例如 onPause() onStop() 等方法中)调用 unsubscribe() 来解除引用关系,以避免内存泄露的发生。
- 王学岗RxJava(17)————实现图片的下载
- Android开发——简述RxJava框架的实现原理
- RxJava实现事件总线——RxBus
- RxJava系列实战——RxJava的基本概念
- RxJava 学习书籍——RxJava Essentials
- RxJava——RxJava应用案例demo
- RxJava+RxAndroid+OKHTTP实现get post 以及下载图片功能
- RxJava系列—(一)RxJava基础
- RxJava——简介
- Rxjava分析—Subject
- Rxjava分析—Subject
- Rxjava分析—Subject
- RxJava—Observable
- RxJava—Subject系列
- RxJava—入门介绍
- RxAndroid的简单应用——实现网络图片的下载
- 图片封装下载——同步下载
- android学习——handler的学习及实现封装下载图片功能
- 中庸之道(一) UESTC
- XDOJ 1152: 数据库查询
- 分拆素数和 HDU
- ubuntu python3 安装selenium及chrome的环境配置
- Sky数 HDU
- 王学岗RxJava(17)————实现图片的下载
- 【网页禁止选中文字】
- CA Loves Stick HDU
- 深入分析Java Web技术内幕 笔记
- Smarty模板引擎三总结
- Android05-常用控件2(Button-选择框)
- Largest prime factor HDU
- 青年歌手大奖赛_评委会打分 HDU
- 【简评】Loss Max-Pooling for Semantic Image Segmentation