之前就有阅读过RxJava,但未实现到项目中。最近项目升级,开始使用RxJava,又重新整理了几点需要注意的问题,希望能帮助到遇到问题的朋友
onCompleted()
和onError()
二者也是互斥的,即在队列中调用了其中一个,就不会再调用另一个。应用到程序开发中,之前使用XUtils时,习惯将结束刷新或者隐藏加载框等操作放到onFinished()方法中,使用RxJava则需注意,成功失败两个方法添加结束。- Subscriber新增加的onStart()方法,在订阅刚开始,时间还未发送之前调用,通常我们会处理初始化的一些操作,在这个方法中,要注意线程问题,他总是在subscribe所发生的线程被调用,对于一些有线程要求的操作,务必注意此点。如若指定线程来完成准备工作,可以使用doOnSubscribe()方法。
- 及时的使用unsubscribe()避免内存泄露的问题。主要是因为subscribe()之后,Observable会持有Subscribe的引用,引用如果不及时的释放(如onPause() onStop() 等方法中),会造成内存泄漏,在使用此方法前,可以使用isUnsubscribe()先判断一下状态。