2017-08-12 55 views
7
@Query("SELECT * FROM userdata") 
Flowable<List<UserData>> allUserDatas(); 

@Insert(onConflict = OnConflictStrategy.REPLACE) 
List<Long> insert(List<UserData> datas); 


userDao.allUserDatas() 
take(1). 
filter(....) 
    .subscribeOn(io()) 
    .observeOn(mainThread()) 
    .subscribe(userDatas -> Log.i("TAG",""+userDatas)); 

tôi thêm vào lấy với thuê bao trong đoạn tương tự trong onAttach() nhưng sau khi DB cập nhật nó không gọi các thuê bao của lấy từ DB, tại saoTại sao định nghĩa Bê tông lỏng tôi có thể nhận được thông tin cập nhật của DB

+0

Vui lòng đăng mã Fragment. – theFunkyEngineer

Trả lời

6

Tôi đã tìm thấy sự cố.

Đó là vì take(1), vì nó hoàn thành và đó là lý do tôi không thể nghe thay đổi. Xóa take(1) đã khắc phục điều đó.

3

Dường như bạn phải thêm Flowable allUserDatas() vào một thể hiện của CompositeDisposable và sau đó đăng ký của bạn sẽ còn sống cho đến khi bạn gọi rõ ràng trên CompositeDisposable.

+0

không, nó không hoạt động, khi lần đầu tiên tôi mở đoạn nó hoạt động, nhưng sau đó khi tôi đang trên mảnh đó và xóa hoặc cập nhật trong DB nó không gọi –

Các vấn đề liên quan