package com.example.flower.zhoukaotest.model; import com.example.flower.zhoukaotest.bean.News; import com.example.flower.zhoukaotest.presenter.IPresenter; import com.example.flower.zhoukaotest.utils.Api; import com.example.flower.zhoukaotest.utils.ApiService; import org.reactivestreams.Publisher; import java.util.List; import io.reactivex.Flowable; import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.annotations.NonNull; import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; import io.reactivex.subscribers.DisposableSubscriber; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by FLOWER on 2017/11/11. */ public class ModelMain implements IModel{ IPresenter iPresenter; public ModelMain(IPresenter iPresenter) { this.iPresenter = iPresenter; } @Override public void getPath(int path) { Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.baseUrl1).addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.create()).build(); ApiService apiService = retrofit.create(ApiService.class); Flowable<List<News>> data = apiService.getData(path); data.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .flatMap(new Function<List<News>, Publisher<News>>() { @Override public Publisher<News> apply(@NonNull List<News> newses) throws Exception { return Flowable.fromIterable(newses); } }).subscribeWith(new DisposableSubscriber<News>() { @Override public void onNext(News news) { iPresenter.getData(news); } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }); } }
M层Rxjava2解析数据
最新推荐文章于 2021-05-27 14:14:43 发布