package com.runt.open.mvvm.base.model; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import com.runt.open.mvvm.data.LoadingCmd; import com.runt.open.mvvm.retrofit.AndroidScheduler; import com.runt.open.mvvm.retrofit.observable.HttpObserver; import io.reactivex.Observable; import io.reactivex.schedulers.Schedulers; /** * Created by Administrator on 2021/11/11 0011. */ public class BaseViewModel extends ViewModel { MutableLiveData loadLive = new MutableLiveData<>(); public MutableLiveData getLoadLive() { return loadLive; } /** * 网络请求观察 * @param observable * @param * @return */ public void httpObserverOn(Observable observable, HttpObserver observer){ observable.subscribeOn(Schedulers.io())//指定网络请求在io后台线程中进行 .observeOn(AndroidScheduler.mainThread()) .subscribe(observer); } /** * 网络请求观察 * @param observable * @param * @return */ public void httpObserverOnLoading(Observable observable, HttpObserver observer){ observable.subscribeOn(Schedulers.io())//指定网络请求在io后台线程中进行 .doOnSubscribe(disposable -> { loadLive.setValue(new LoadingCmd(LoadingCmd.CMD.LOADING,"请求数据中...")); }) .observeOn(AndroidScheduler.mainThread()) .doOnComplete(() -> { loadLive.postValue(new LoadingCmd(LoadingCmd.CMD.DISSMISS)); }) .subscribe(observer); } }