即使没有数据库更改,房间rxjava也会多次调用onNext

时间:2019-11-14 11:16:48

标签: android rx-java2 android-room

我有一个将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() {}
                });    
        }
}

0 个答案:

没有答案