本文共 1655 字,大约阅读时间需要 5 分钟。
package com.qianfeng.assistant.modules.other.utils;import android.os.AsyncTask;/** * 用异步任务封装的网络请求工具类 * Created by Administrator on 16-3-15. */public class AssistantTask extends AsyncTask { private IRequest request; private IRequestCallback callback; public AssistantTask(IRequest request, IRequestCallback callback) { if(request==null||callback==null){ throw new NullPointerException("request or callback can not be null"); } this.request = request; this.callback = callback; } @Override protected Object doInBackground(Void... params) { return request.doRequest(); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); //publishProgress(values); } @Override protected void onPostExecute(Object object) { super.onPostExecute(object); if(object==null){ callback.onError("请求失败"); }else { callback.OnSuccess(object); } } /** * 请求接口 */ public interface IRequest{ /** * 执行请求 */ Object doRequest(); } /** * 请求回调接口 */ public interface IRequestCallback{ /** * 请求成功的回调方法 * 请求结果 * @param object */ void OnSuccess(Object object); /** * 请求失败的回调方法 * 错误信息 * @param msg */ void onError(String msg); } public interface IDownLoadProgress{ /** * 更新进度 * @param progress 百分比 */ void updateProgress(int progress); }}
转载于:https://blog.51cto.com/tiantiankaixin/1869446