我有一个将Room与RXJava一起使用的项目,因为我需要听到库中的变化并将其实时反映在屏幕上。
当我打开需要此数据的屏幕时,它订阅了该查询,并且数据正确地到达了屏幕,但是当放置一个折点并进行调试时,我看到onNext被调用了很多次,即使没有数据库更改也不会停止。
有人知道这种行为是否可以更改,是否希望仅在数据库中有更改时才调用onNext
@Dao
public abstract class CarDao {
@Query("SELECT * FROM cars ")
public abstract Observable<List<Car>> fetchCars();
}
查看
public MyActivity extends Activity {
........
public void fetchCars(){
carDAO.fetchCars()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<Car>>() {
@Override
public void onSubscribe(Disposable d) {}
@Override
public void onNext(List<Car> Cars) {
**Log.d("app", "MyActivity - carDAO.getCar - onNext ")**
}
@Override
public void onError(Throwable t) {}
@Override
public void onComplete() {}
});
}
}