2017-08-12 3 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)); 

j'ai ajouté aller chercher avec abonnement dans le même fragment dans onAttach() mais après DB mise à jour ne remet pas l'abonnement d'aller chercher de DB, pourquoiPourquoi définir Flowable je pouvais recevoir des mises à jour de la DB

+0

Veuillez poster le code Fragment. – theFunkyEngineer

Répondre

6

J'ai trouvé le problème.

C'était à cause de take(1), comme il fait compléter et c'est pourquoi je ne pouvais pas écouter les changements. Suppression take(1) a corrigé cela.

3

Il semble que vous deviez ajouter votre allUserDatas() à une instance de CompositeDisposable et que votre abonnement soit actif jusqu'à ce que vous appeliez clear sur CompositeDisposable.

+0

non, cela ne fonctionne pas, lorsque pour la première fois que j'ouvre le fragment, il fonctionne, mais quand je suis sur ce fragment et la suppression ou la mise à jour dans DB il n'appelle pas –