vendredi 9 octobre 2015

Load data from webservice then save to DB using RxAndroid

im new at RxAndroid, i have been successfull implement load data from webservice using RxAndroid + Lambda, here are my code

 RestClient.get()
    .getStories()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(responseStories -> {
       // show data to my view
      view.showData(responseStories.getStories());
    }, throwable -> {
      // show error to my view
      Timber.e("error get data stories :" + throwable.getMessage());
    }, () -> {
      Timber.i("completed get data stories");
    });

interface for getStories

 @GET("/me/stories") Observable<ResponseStories> getStories();

and then i want combine it with my function for save data to local database (sqlite), but im little bit confuse what function i must use for .

i have been trying with simple code like these

List<User> listUser = new ArrayList<>();
listUser.add(new User("John Snow"));
listUser.add(new User("Raisyana"));

Observable.just(listUser)
    .subscribeOn(Schedulers.newThread())
    .observeOn(AndroidSchedulers.mainThread())
    .concatMap(users1 -> Observable.from(users1))
    .doOnNext(user -> saveToDatabaseUser(user))
    .subscribe();

  private void saveToDatabaseUser(User user) {
    Log.d("save", "save data " + user.getName());
    Log.d("thread", "" + Thread.currentThread().getName());
  }

its success log username, but when im trying implement on my real code it failed

Aucun commentaire:

Enregistrer un commentaire