取消订阅

一般我们在视图消亡后,无需RxJava再执行,可以直接取消订阅

 observable.unsubscribeOn(Schedulers.io());

可用在activity的 onDestroy(), Fragment的 onDestroyView()中调用

还有种场景是借助rxJava请求网络数据,需要网络返回后保存数据并更新UI,这种情况视图已经消亡了必定会导致rxJava出错,导致App闪退,这种我们可以判断前的activity/view是否为空,并是否已showing,如果
两者都不存在,即可无须更新UI。只处理保存数据即可。

@NonNull
private Drawable getDrawableFromNet(final String source) {mSubscription = Api.getDefault(HostType.NEWS_DETAIL_HTML_PHOTO).getNewsBodyHtmlPhoto(Api.getCacheControl(),source).unsubscribeOn(Schedulers.io()).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).map(new Func1<ResponseBody, Boolean>() {@Override
                public Boolean call(ResponseBody response) {return WritePicToDisk(response, source);
                }}).subscribe(new Subscriber<Boolean>() {@Override
                public void onCompleted() {}@Override
                public void onError(Throwable e) {}@Override
                public void onNext(Boolean isLoadSuccess) {mPicCount++;
                    if (isLoadSuccess && (mPicCount == mPicTotal - 1)) {mTextView.setText(Html.fromHtml(mNewsBody, URLImageGetter.this, null));
                    }}});

    return createPicPlaceholder();
}

git:https://github.com/whtchl/AndroidNews.git

observable.unsubscribeOn(Schedulers.io())相关推荐

  1. Rxjava +Retrofit 你需要掌握的几个技巧,Retrofit缓存,RxJava封装,统一对有无网络处理,异常处理, 返回结果问题

    本文出处 :Tamic 个人公众号:开发者技术前线 文/ http://blog.csdn.net/sk719887916/article/details/52132106 Rxjava +Rtero ...

  2. RxJava2:Observable和Observer如何传递

    以Observable为例,先上代码: //① ObservableJust<String> observable = (ObservableJust<String>) Obs ...

  3. android novate乱码,Android RxJava+Retrofit2+RxBinding

    Android RxJava+Retrofit2+RxBinding 本文原创,转载请注明出处.欢迎关注我的 简书. 安利一波我写的开发框架:MyScFrame喜欢的话就给个Star 前言: 之前写了 ...

  4. android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava

    老婆保佑,代码无BUG 目录 引用 与其他开源请求库对比 Retrofit注解 使用 GET请求 POST请求 Retrofit2 + RxJava 基础使用 优化 封装Retrofit2 + RxJ ...

  5. 添加请求头 retrofit_RxJava 与 Retrofit 结合的最佳实践

    前言 RxJava和Retrofit也火了一段时间了,不过最近一直在学习ReactNative和Node相关的姿势,一直没有时间研究这些新东西,最近有个项目准备写,打算先用Android写一个Demo ...

  6. retrofit框架学习(二)----retrofit封装

    retrofit 的封装 前言 上一篇文章的链接 http://blog.csdn.net/qq_26296197/article/details/78011188 1 上一篇文章讲到Retrofit ...

  7. java如何把方法封装成接口,RxJava配合Retrofit实现网络封装

    那么呢,首先呢,我们呢,来记录一下Android中比较火的两种技术,火了大半壁江山的RxJava和垄断了大部分的网络请求Retrofit.这两者的结合其实不需要太多的封装,只要简简单单的搞两下子基本就 ...

  8. java mvp模式_MVP模式入门(结合Rxjava,Retrofit)

    本文MVP的sample实现效果: 老规矩,在说对MVP模式的理解之前还是要再谈谈MVC模式,了解了MVC的缺点.我们才知道为什么要用MVP. 关于MVC的图解,我在网上找到了一些图.如下: MVC模 ...

  9. Android MVP开发模式及Retrofit + RxJava封装

    代码已上传到Github,因为接口都是模拟无法进行测试,明白大概的逻辑就行了! 欢迎浏览我的博客--https://pushy.site 1. MVP模式 1.1 介绍 如果熟悉MVP模式架构的话,对 ...

最新文章

  1. 在bootstrap ace样式框架上修改的后台管理型模板(Tab页后台管理模板)
  2. Github学习系列之Github是什么?
  3. ASP.NET 实践:写入 Cookie
  4. Python中read( )与readlines( )的使用
  5. 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin.password
  6. 《mysql必知必会》学习_第11章_20180801_欢
  7. 清原高中2021高考成绩查询,2021年抚顺高考状元是谁分数多少分,历年抚顺高考状元名单...
  8. react学习(15)-getTime selectedRowKeys是this.props取值的
  9. 计算机excel图表考试题库,2016年职称计算机考试Excel操作题库
  10. Query ajax操作!!
  11. c++ 网络编程课设入门超详细教程 ---目录
  12. 低代码大势所趋,RDP报表3.0应运而生
  13. 月光博客:我的知识管理工具列表(强烈推荐收藏)
  14. CocoaPods之Podfile\Podfile.lock
  15. mysql5.6.39免安装,win7 64位配置mysql 5.6免安装版,初始化配置和Mysql创建新用户方
  16. 武汉音乐学院计算机免修成绩,教务处
  17. 石家庄地铁选站系统进度报告
  18. 电脑如何启用屏幕键盘(OSK)方法
  19. 聊聊什么是自动化测试,什么是自动化测试框架
  20. apisix插件之修改返回body

热门文章

  1. jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试
  2. mysql 分区指定路径_[数据库]MySQL 指定各分区路径
  3. c++十六进制加法_C++中输出十六进制形式的字符串
  4. 如何把主机系统上传到服务器,主机系统上传到服务器
  5. if语句的一种使用失误
  6. mciSendString 的两个小坑
  7. JFinal-layui v1.2.3 发布,极速开发企业应用系统
  8. 《大数据导论》——1.4节案例学习背景
  9. Factory模式与Prototype模式的异同
  10. 我也能做CTO之程序员职业规划