diff --git a/app/src/main/java/com/example/musicplayer/base/observer/BaseObserver.java b/app/src/main/java/com/example/musicplayer/base/observer/BaseObserver.java index c2d7082..bac4c72 100644 --- a/app/src/main/java/com/example/musicplayer/base/observer/BaseObserver.java +++ b/app/src/main/java/com/example/musicplayer/base/observer/BaseObserver.java @@ -1,5 +1,6 @@ package com.example.musicplayer.base.observer; +// 导入所需的包和类 import android.net.ParseException; import android.os.Handler; import android.util.Log; @@ -19,57 +20,69 @@ import retrofit2.HttpException; import static com.example.musicplayer.app.Constant.TAG_ERROR; /** - *
- *     author : 残渊
- *     time   : 2019/07/16
- *     desc   : 对RxJava的下游即数据进行处理
- * 
+ * 对RxJava的下游即数据进行处理的基类。 + *

+ * author : 残渊 + * time : 2019/07/16 + * desc : 处理网络请求的响应,包括成功、失败和各种异常情况。 */ - public class BaseObserver extends ResourceObserver { - private static final String TAG = "BaseObserver"; - private boolean isShowLoadingView = true; - private boolean isShowErrorView =true; + private static final String TAG = "BaseObserver"; // 日志标签 + private boolean isShowLoadingView = true; // 是否显示加载视图 + private boolean isShowErrorView = true; // 是否显示错误视图 - private BaseView baseView; + private BaseView baseView; // 基础视图接口,用于更新UI - private BaseObserver(){} + // 私有构造函数,防止直接实例化 + private BaseObserver() {} - protected BaseObserver(BaseView baseView){ - this(baseView,false,false); + // 构造函数,初始化BaseView + protected BaseObserver(BaseView baseView) { + this(baseView, false, false); } - protected BaseObserver(BaseView baseView,boolean isShowLoadingView){ - this(baseView,isShowLoadingView,false); + // 构造函数,初始化BaseView和是否显示加载视图 + protected BaseObserver(BaseView baseView, boolean isShowLoadingView) { + this(baseView, isShowLoadingView, false); } - protected BaseObserver(BaseView baseView,boolean isShowLoadingView, boolean isShowErrorView){ + // 构造函数,初始化BaseView、是否显示加载视图和是否显示错误视图 + protected BaseObserver(BaseView baseView, boolean isShowLoadingView, boolean isShowErrorView) { this.baseView = baseView; this.isShowLoadingView = isShowLoadingView; this.isShowErrorView = isShowErrorView; } + /** + * 请求开始时调用,显示加载视图。 + */ @Override protected void onStart() { - if(isShowLoadingView) baseView.showLoading(); + if (isShowLoadingView) baseView.showLoading(); } - - + /** + * 请求成功时调用,隐藏加载视图,显示正常视图。 + * @param t 返回的数据 + */ @Override public void onNext(T t) { - new Handler().postDelayed(()->{ + new Handler().postDelayed(() -> { baseView.showNormalView(); - },500); - + }, 500); } + /** + * 请求失败时调用,处理各种异常情况并显示错误视图。 + * @param e 异常信息 + */ @Override public void onError(Throwable e) { - new Handler().postDelayed(()->{ - if(isShowErrorView) baseView.showErrorView(); - },500); + new Handler().postDelayed(() -> { + if (isShowErrorView) baseView.showErrorView(); + }, 500); e.printStackTrace(); + // 处理不同类型的异常 if (e instanceof UnknownHostException) { Log.e(TAG_ERROR, "networkError:" + e.getMessage()); networkError(); @@ -82,50 +95,51 @@ public class BaseObserver extends ResourceObserver { } else if (e instanceof JsonParseException || e instanceof JSONException || e instanceof ParseException) { Log.e(TAG_ERROR, "解析错误:" + e.getMessage()); parseError(); - }else { + } else { Log.e(TAG_ERROR, "未知错误:" + e.getMessage()); unknown(); } } + /** + * 请求完成时调用,不做任何操作。 + */ @Override public void onComplete() { } /** - * 未知错误 + * 显示未知错误信息。 */ protected void unknown() { baseView.showToast(App.getContext().getString(R.string.error_unknown)); - } /** - * 解析错误 + * 显示解析错误信息。 */ protected void parseError() { baseView.showToast(App.getContext().getString(R.string.error_parse)); } /** - * http错误 + * 显示HTTP错误信息。 */ protected void httpError() { baseView.showToast(App.getContext().getString(R.string.error_http)); } /** - * 网络超时异常 + * 显示网络超时错误信息。 */ protected void timeoutError() { baseView.showToast(App.getContext().getString(R.string.error_timeout)); } /** - * 网络不可用异常 + * 显示网络不可用错误信息。 */ protected void networkError() { baseView.showToast(App.getContext().getString(R.string.error_network)); } - -} +} \ No newline at end of file