探索RxAndroid在android开发中的应用

一、何来RxAndroid?

RxAndroid is an extension to RxJava built just for Android. It includes special bindings that will make your life easier

rxandorid是为andorid设计的rxjava扩展使用,包含的特殊的绑定将使开发更容易

二、有啥方便使用的?

 2.1、AndroidSchedulers的mainThread方便你的UI交互:

retrofitService.getImage(url)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(bitmap -> myImageView.setImageBitmap(bitmap));

2.2、AndroidObservable与Andorid生命周期一同绑定,比如有:bindActivity()和bindFragment(),同时指定observeOn观察线程AndroidSchedulers.mainThread()在Activity或Fragment生命周期结束时不会发送通知事件

AndroidObservable.bindActivity(this, retrofitService.getImage(url))
    .subscribeOn(Schedulers.io())
    .subscribe(bitmap -> myImageView.setImageBitmap(bitmap));

2.2.1、AndoridObservable.fromBroadcast(),其工作模式就像broadcastreceiver:

IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
AndroidObservable.fromBroadcast(context, filter)
    .subscribe(intent -> handleConnectivityChange(intent));

2.3、ViewObservable: 与View的双向绑定,可使用ViewObservable.clicks()获得每次View被点击的事件,或ViewObservable.text()来观察TextView文本的改变

ViewObservable.clicks(mCardNameEditText, false)
    .subscribe(view -> handleClick(view));

3、与Retrofit的结合使用

@GET("/user/{id}/photo")
Observable<Photo> getUserPhoto(@Path("id") int id);

  使用zip可整合多个网络请求结果一块处理:

Observable.zip(
    service.getUserPhoto(id),
    service.getPhotoMetadata(id),
    (photo, metadata) -> createPhotoWithData(photo, metadata))
    .subscribe(photoWithData -> showPhoto(photoWithData));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值