2017-07-14 2 views
0

Je suis nouveau dans rxAndroid, je juste pour remplacer asynTask de rxAndroid. Je veux juste créer une liste à l'aide de requêtes db en arrière-planRemplacer la tâche asynchrone de RxAndroid

new AsyncTask<Void, Void, Void>() { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      startSppiner(); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
     List<masterDataTable> list = ServatiumApplication.daoSession.getMasterDataTableDao().queryBuilder().where(masterDataTableDao.Properties.MasterType.eq(ParserString.MD_SERVICE_LEVEL), masterDataTableDao.Properties.DeleteFlag.eq(SHOW_FLAG)).orderAsc(masterDataTableDao.Properties.Description).list(); 
     if (list.size() > 0) { 
     PopUpValues values1 = new PopUpValues(); 
     values1.setValue(ParserString.SELECT_VALUE); 
     values1.setName(ParserString.SELECT); 
     serviceLevelList.add(values1); 

     for (masterDataTable item : list) { 
      PopUpValues values = new PopUpValues(); 
      values.setValue(item.getLookupCode()); 
      values.setName(item.getDescription()); 
      serviceLevelList.add(values); 
     } 

    } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void aVoid) { 
      stopSppiner(); 

     } 
    }.execute(); 

Merci pour l'aide à l'avance !!

+0

https://stackoverflow.com/questions/31592399/convert-asynctask-to-rxandroid?rq=1 – codeWorm

+0

Je veux juste gonfler un rien de la liste que vous pouvez partager un peu de code se rapportent à elle –

Répondre

0

Cela fera l'affaire.

public void query(){ 
    startSppiner(); 
    Observable.fromCallable(new Func0<List<PopUpValues>>() { 
     @Override 
     public List<PopUpValues> call() { 
      List<masterDataTable> list = ServatiumApplication.daoSession.getMasterDataTableDao().queryBuilder().where(masterDataTableDao.Properties.MasterType.eq(ParserString.MD_SERVICE_LEVEL), masterDataTableDao.Properties.DeleteFlag.eq(SHOW_FLAG)).orderAsc(masterDataTableDao.Properties.Description).list(); 
      List<PopUpValues> serviceLevelList = new ArrayList<PopUpValues>(); 
      if (list.size() > 0) { 
       PopUpValues values1 = new PopUpValues(); 
       values1.setValue(ParserString.SELECT_VALUE); 
       values1.setName(ParserString.SELECT); 
       serviceLevelList.add(values1); 

       for (masterDataTable item : list) { 
        PopUpValues values = new PopUpValues(); 
        values.setValue(item.getLookupCode()); 
        values.setName(item.getDescription()); 
        serviceLevelList.add(values); 
       } 

      } 
      return serviceLevelList; 
     } 
    }) 
    .subscribeOn(Schedulers.io()) 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribe(new Subscriber<List<PopUpValues>>() { 
     @Override 
     public void onCompleted() { 
      stopSppiner(); 
     } 

     @Override 
     public void onError(Throwable e) { 

     } 

     @Override 
     public void onNext(List<PopUpValues> popUpValues) { 
      // Here you get the serviceLevelList data 
     } 
    }); 
} 
+0

merci pour la réponse pouvons-nous utiliser même Observable pour aller chercher plusieurs listes de DB.Si oui alors comment. –

+0

Dépend, quel serait le modèle de listes multiples, si oui, alors, tout peut être combiné en un seul. – Ritesh

+0

Comment nous renvoyons plusieurs listes –