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);    }}