取数据先检查缓存的场景
取数据,首先检查内存是否有缓存
然后检查文件缓存中是否有
最后才从网络中取
前面任何一个条件满足,就不会执行后面的
1 | final Observable<String> memory = Observable.create(new Observable.OnSubscribe<String>() { |
界面需要等到多个接口并发取完数据,再更新
1 | //拼接两个Observable的输出,不保证顺序,按照事件产生的顺序发送给订阅者 |
一个接口的请求依赖另一个API请求返回的数据
举个例子,我们经常在需要登陆之后,根据拿到的token去获取消息列表。
这里用RxJava主要解决嵌套回调的问题,有一个专有名词叫Callback hell
1 | NetworkService.getToken("username", "password") |
界面按钮需要防止连续点击的情况
1 | RxView.clicks(findViewById(R.id.btn_throttle)) |
响应式的界面
比如勾选了某个checkbox,自动更新对应的preference
1 | SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); |
复杂的数据变换
1 | Observable.just("1", "2", "2", "3", "4", "5") |