RxAndroid 来管理应用状态(3)
处理方案就是响应式编程,我们用响应式编程方式重新审视我们的 code refact 我们的代码。这里我们引用 RxAndroid 这个库来帮助我们处理一切的异步问题。我们来基于 RxAndroid 来实现响应式编程。
getUser 不在返回 User 对象,而是返回一个包裹了 User 的可观察者的对象。当 User 对象发生变化时我们就能第一时间接受升级消息。便于我们获取最新版的 User 对象。将 setName 和 setAge 返回一个 Completable 对象,也就是我们每次升级服务端的客户 name 和 age 时都会通过这个返回 Completable 得到能否成功,以及什时候成功的信息。?
getUser 返回一个可观察对象,我们即可以在 UI 线程上观察他的动向。以便来及时升级界面。
而后通过 subscribeWith 来解决返回的 User 的对象,这里假如 RxAndroid 少量语法还不是很理解,我的了解就是subscribeWith中会把方法参数返回回去接收的是ResourceSubscriber,而ResourceSubscriber实现了Disposable接口所以,一般subscribeWith用到使用Rx请求接口的这种情况,订阅后把请求参数返回回去,可以增加到CompositeDisposable中方便绑定Activity生命周期取消。假如这里用 subscribe 而不是 subscribeWith 我们需要解决返回值 Disposable disposable = um.getUser… 而后在回收这个返回的 disposal 对象。
再看一看 setName 方法在升级后如何使用,我们需要访问远端服务器,为了不阻止主线程我们需要另起线程,对于线程解决和线程间通讯 RxAndroid 给我们提供全新的处理方案。
让后我们再回到主线程,解决返回的结果。
从这一点我们开始获取客户。
公告线程
容易解决错误信息
制定回调
与生命周期相关
1.?开始升级客户属性
2.?公告一个线程,让我们请求脱离主线程
3.?可以轻松解决请求的错误信息
4.?多个异步组合使用也相对简单。
5.?发起异步可以随时取消,可以和我们?Android?
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » RxAndroid 来管理应用状态(3)