package com.qianfeng.assistant.modules.other.utils;
import android.os.AsyncTask;
/**
* 用异步任务封装的网络请求工具类
* Created by Administrator on 16-3-15.
*/
public class AssistantTask extends AsyncTask<Void,Void,Object> {
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);
}
}
三默网为您带来有关“用异步任务封装的网络请求工具类AssistantTask”的文章内容,供您阅读参考。
用异步任务封装的网络请求工具类AssistantTask
2023-01-21 15:32:56
转载于:https://blog.51cto.com/tiantiankaixin/1869446