我尝试在我的Android活动中应用MVVM模式(我是Android noob)。
我使用带有RxJava 2的Room,例如这是我的存储库中方法的签名:
public Single<MissionTask> getMissionTaskByID(long id) {..}
在我的 ViewModel 类中,我引用了存储库和代码,如下所示:
private void doSomethingOnUserEvent() {
...
missionTaskRepository.getMissionTaskByID(firstID).
observeOn(AndroidSchedulers.mainThread()).
subscribeOn(Schedulers.io()).
subscribe(missionTask ->
{
// do some work and update live data
},
t -> {
// handle error
});
...
}
到目前为止一切顺利,一切似乎表面上都很好。现在 - subscribe
会返回Disposable
。
我的问题是:
在我所经历的一些例子中,没有处理Disposable。
更新:我在composite disposable中看到了android-architecture-components的使用情况。
感谢。
答案 0 :(得分:0)
只需清除您在onCleared
处理的一次性/复合材料,这就足够了
protected override onCleared(){
if( diposable != null )
disposable.dispose()
}