RXjava浅读

1.首先在学习的过程中,最初以为rxjava是网络请求框架,但其实并非如此,在看了几个博客( http://blog.csdn.net/Job_Hesc/article/details/45798307 )后才知道,rxjava原来是一个同handler+thread功能相仿的东西,android中常用rxjava+Retrofit来处理网络请求+数据处理,单独的rxjava只起到处理线程的功能。因此如果只考虑rxjava的话我们就当做handler+thread的另一种实现方式好了。
2.rxjava普通写法:
简略结构:
//1.用Observable.create()方法创建Observable实例;
Observable observable = Observable.create (new Observable.OnSubscribe<Object>(){
try{
//2.重写call方法
public void call(Subscriber<?super Object> subscriber){
//3.执行网络请求获取封装类对象(或者其他业务逻辑处理,一般结合网络请求用)
Object object = gethttp();
//4.发布事件通知订阅者(通知者是幕后去处理这个object的不需要考虑是如何处理的)
subscriber .onNext(object);
//5.事件通知完成
subscriber.oncompleted();
}catch( Exception e ){
//6.出现异常,通知订阅者
subscriber.onError(e);
}
}
//7.让Observable运行在新线程中(因为执行了网络请求需要异步)
} ). subscribeOn(Schedulers. newThread ())
//8.让subscriber运行在主线程中(因为要在主线程中进行UI界面刷新)
.observeOn(AndroidSchedulers. mainThread ())
.subscribe( new Subscriber<object>() {
//9.重新onNext()\onCompleted()\onError()方法对应上面4、5、6
public void onCompleted() {
//对应上面的第5点:subscriber.onCompleted();
//这里写事件发布完成后的处理逻辑
}

@Override
public void onError(Throwable e) {
//对应上面的第6点:subscriber.onError(e);
//这里写出现异常后的处理逻辑
Toast. makeText ( context , e.getMessage(), Toast. LENGTH_SHORT ).show();
}

@Override
public void onNext(Object object) {
//对应上面的第4点:subscriber.onNext(object);
//这里写获取到某一个事件通知后的处理逻辑
if (object!= null )
Toast.makeText(context, object.tostring(), Toast.LENGTH_SHORT).show();
}
});
}
这里只是浅浅的读了下rxjava,帮各位对rxjava有一个了解,其他深入的理解,还需要各位同学去继续努力,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值