Rxjava2不能再发射Null了
2024-08-31 22:18:53
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);
}
});
最新文章
- 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体
- 3-4 linux 用户及权限管理
- 使用Unity3D的50个技巧
- stopPropagation, preventDefault 和 return false
- 给Jquery动态添加的元素添加事件2
- Android NDK 构建 以及一些错误
- IOS学习4
- windows 2012上配置好iis后出现不能访问的现象
- 个人对maven pom.xml文件的理解
- Java JSON序列化杂谈
- (转载)MyEclipse github
- PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)
- 【最短路&#183;差分约束】洛谷P1250
- PGM:图模型学习概述
- win10的MySQL客户端连接centos7虚拟机的mysql服务端连接不上解决办法
- 单链表数据结构 - java简单实现
- python笔记2-数据类型:列表[List]常用操作
- 小朋友学C语言(2):安装Dev C++编译器
- CodeForces1082G Petya and Graph 最小割
- spring boot 中文乱码问题
热门文章
- oracle给用户赋dblink权限
- Linux系统性能测试工具(七)——网络性能工具之iperf
- 显示本机 Linux 系统上所有开放的端口列表
- VB学习一
- 2019 计蒜之道 复赛 E. 撑起信息安全“保护伞” (贪心,构造,规律)
- const定义的并非是常量,而是常量索引
- ASP.NET Core 基础知识(五) 依赖关系注入
- 前端每日实战:126# 视频演示如何用纯 CSS 创作小球变矩形背景的按钮悬停效果
- BZOJ4625 [BJOI2016]水晶 最小割
- java:投个票程序