请问我该如何等待网络请求完成后再进行return?
public class InsertRemain {
private static Double remain;
public static Double InsertRemain(String uname, String assetsType) {
AssetsPresenter.queryAssRemain(new Subscriber<List<AssetsEntity>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(List<AssetsEntity> assetsEntities) {
remain = assetsEntities.get(0).getMoneyRemain();
}
}, uname, assetsType);
return remain;
}
}
网络接口
@FormUrlEncoded
@POST("assets/queryAssRemain")
Observable<HttpResult<List<AssetsEntity>>> queryAssRemain(@Field("uname") String uname,@Field("assetsType") String assetsType);
public static void queryAssRemain(Subscriber<List<AssetsEntity>> subscriber, String uname, String assetsType) {
Observable<List<AssetsEntity>> observable = assetsService.queryAssRemain(uname,assetsType)
.map(new HttpResultFunc<List<AssetsEntity>>());
toSubscribeAsync(observable, subscriber);
}
public abstract class ProgressDialogSubscriber<T> extends Subscriber<T> {
private static final String TAG = "ProgressDialog";
private Context mContext;
private ProgressDialog mDialog;
public ProgressDialogSubscriber(Context context){
this.mContext=context;
}
@Override
public void onNext(T t) {
Log.i(TAG, "===============进入onNext" + t);
}
@Override
public void onCompleted() {
dismissProgressDialog();
}
@Override
public void onError(Throwable e) {
Log.i(TAG, "===============onError====" + e);
if(e instanceof SocketTimeoutException){
Toast.makeText(mContext,"网络中断,请检查你的网络状态",Toast.LENGTH_SHORT).show();
}else if (e instanceof ConnectException){
Toast.makeText(mContext,"网络中断,请检查你的网络状态",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(mContext,"error"+e.getMessage(),Toast.LENGTH_SHORT).show();
Log.v("=====","error:==="+e.getMessage());
}
dismissProgressDialog();
}
@Override
public void onStart() {
showProgressDialog();
}
private void showProgressDialog(){
if (mDialog!=null){
mDialog=new ProgressDialog(mContext);
mDialog.setCancelable(true);
mDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
//取消订阅,取消请求
ProgressDialogSubscriber.this.unsubscribe();
}
});
}
if (mDialog!=null&&mDialog.isShowing()){
mDialog.show();
}
}
private void dismissProgressDialog(){
if (mDialog!=null&&mDialog.isShowing()){
mDialog.dismiss();
mDialog=null;
}
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…