RxJava2的最大改变就是不能再流里发射Null了,有人会问发射了就怎么了,答案是你的流会因为NPE断开.

例如下面这段代码因为文件被删了找不到返回null,这时候就不触发下面Consumer的accept。

Disposable subscribe = Observable.fromCallable(new Callable<Bitmap>() {
@Override
public Bitmap call() {
FileInputStream fis;
Bitmap b=null;
try {
fis = new FileInputStream(path);
b = BitmapFactory.decodeStream(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return b;
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Bitmap>() {
@Override
public void accept(Bitmap bitmap) {
if (bitmap != null) {
viewBc.setImageBitmap(bitmap);
} else {
viewBc.setImageResource(R.drawable.wallpaper_default);
}
}
});

如果需要处理,则需要处理这种异常Consumer<Throwable>

Disposable subscribe = Observable.fromCallable(new Callable<Bitmap>() {
@Override
public Bitmap call() {
FileInputStream fis;
Bitmap b=null;
try {
fis = new FileInputStream(path);
b = BitmapFactory.decodeStream(fis);
} catch (FileNotFoundException e) {
e.printStackTrace(); }
return b;
}
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Bitmap>() {
@Override
public void accept(Bitmap bitmap) {
if (bitmap != null) {
viewBc.setImageBitmap(bitmap);
} else {
viewBc.setImageResource(R.drawable.wallpaper_default);
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
viewBc.setImageResource(R.drawable.wallpaper_default);
}
});

最新文章

  1. 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体
  2. 3-4 linux 用户及权限管理
  3. 使用Unity3D的50个技巧
  4. stopPropagation, preventDefault 和 return false
  5. 给Jquery动态添加的元素添加事件2
  6. Android NDK 构建 以及一些错误
  7. IOS学习4
  8. windows 2012上配置好iis后出现不能访问的现象
  9. 个人对maven pom.xml文件的理解
  10. Java JSON序列化杂谈
  11. (转载)MyEclipse github
  12. PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)
  13. 【最短路&#183;差分约束】洛谷P1250
  14. PGM:图模型学习概述
  15. win10的MySQL客户端连接centos7虚拟机的mysql服务端连接不上解决办法
  16. 单链表数据结构 - java简单实现
  17. python笔记2-数据类型:列表[List]常用操作
  18. 小朋友学C语言(2):安装Dev C++编译器
  19. CodeForces1082G Petya and Graph 最小割
  20. spring boot 中文乱码问题

热门文章

  1. oracle给用户赋dblink权限
  2. Linux系统性能测试工具(七)——网络性能工具之iperf
  3. 显示本机 Linux 系统上所有开放的端口列表
  4. VB学习一
  5. 2019 计蒜之道 复赛 E. 撑起信息安全“保护伞” (贪心,构造,规律)
  6. const定义的并非是常量,而是常量索引
  7. ASP.NET Core 基础知识(五) 依赖关系注入
  8. 前端每日实战:126# 视频演示如何用纯 CSS 创作小球变矩形背景的按钮悬停效果
  9. BZOJ4625 [BJOI2016]水晶 最小割
  10. java:投个票程序