package eVVM.apk.common; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import com.allen.library.base.BaseObserver; import com.allen.library.bean.BaseData; import com.allen.library.observer.DataObserver; import com.allen.library.utils.ToastUtils; import eVVM.apk.app.MyApplication; import eVVM.apk.helper.ActivityStackManager; import eVVM.apk.helper.SPUtils; import eVVM.apk.ui.login.LoginActivity; import io.reactivex.disposables.Disposable; /** * Created by Android Studio. * User: zbb * Date: 2019/6/10 * Describe: MyDataObsever */ public abstract class MyDataObsever extends BaseObserver { /** * 失败回调 * * @param errorMsg */ protected abstract void onError(String errorMsg); /** * 成功回调 * * @param t */ protected abstract void onSuccess(T t); @Override public void doOnSubscribe(Disposable d) { } @Override public void doOnError(String errorMsg) { if (!isHideToast() && !TextUtils.isEmpty(errorMsg)) { ToastUtils.showToast(errorMsg); } onError(errorMsg); } @Override public void doOnNext(T t) { BaseDataBean baseDataBean = (BaseDataBean) t; if (baseDataBean.getCode() == 102) { // 登录过期处理 Activity topActivity = ActivityStackManager.getInstance().getTopActivity(); Intent in = new Intent(topActivity, LoginActivity.class); topActivity.startActivity(in); SPUtils.clear(); // 进行内存优化,销毁掉所有的界面 ActivityStackManager.getInstance().finishAllActivities(LoginActivity.class); com.hjq.toast.ToastUtils.show("登录已过期,请重新登录"); } else { onSuccess(t); } } @Override public void doOnCompleted() { } } /*case 500: Context appContext = MyApplication.getAppContext(); Intent in = new Intent(appContext,LoginActivity.class); appContext.startActivity(in); SPUtils.clear(); // 进行内存优化,销毁掉所有的界面 ActivityStackManager.getInstance().finishAllActivities(LoginActivity.class); com.hjq.toast.ToastUtils.show("登录已过期,请重新登录"); break;*/