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