import com.taotaospoken.project.json.request.BaseRequest;
import com.taotaospoken.project.json.response.BaseResponse;
import com.taotaospoken.project.util.NetworkUtil;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
/**
* @作者 尤立才
* @时间 2013-12-18
* @作用 供客户端调用,获取后台数据或者提交表单
* @开始编写代码啦...
*/
public class NetworkDataAccessApi {
private static Context context;
private static NetworkDataAccessApi mNetworkDataAccess;
private static JsonFactory mJsonFactory; //json数据处理工厂
private LoadDataTask loadtask;
// 访问网络资源 所必要的 参数
private int urlId = 0; // URLID
private String accessUrl = null;// 网络资源地址
private BaseRequest requestParam = null; // 地址参数
private NetworkDataAccessListner dataResponseListner = null; // 外部调用接口
private BaseResponse mBaseResponse;
/**
*
* @描述 获得返回数据实例
* @参数 @return
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 DataResponse
*/
public static NetworkDataAccessApi getInstance(Context context1) {
if (mNetworkDataAccess == null) {
mNetworkDataAccess = new NetworkDataAccessApi();
mJsonFactory = JsonFactory.getNewFactory(context);
}
context = context1;
return mNetworkDataAccess;
}
/**
*
* @描述 发送请求
* @参数 @param ID 访问Url对应的ID
* @参数 @param accessUrl 访问Url
* @参数 @param requestParam URL参数
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 void
*/
public void sendRequest(int ID, String accessUrl,
BaseRequest requestParam,BaseResponse baseResponse) {
mBaseResponse=baseResponse;
this.urlId = ID;
this.accessUrl = accessUrl;
this.requestParam = requestParam;
loadtask = new LoadDataTask();
loadtask.execute();
}
/**
*
* @描述 取消本次请求
* @参数
* @作者 尤立才
* @时间 2013-12-18
* @返回类型 void
*/
public void cancellTask() {
if (loadtask != null
&& loadtask.getStatus() == AsyncTask.Status.RUNNING) {
loadtask.cancel(true);
loadtask = null;
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataCancelled();
}
}
}
private void receiveDataComplete(Object o) {
if (this.dataResponseListner != null) {
dataResponseListner.ReceiveDataComplete(o);
}
}
private void receiveDataOverTime() {
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataOverTime();
}
}
private void receiveDataError() {
if (dataResponseListner != null) {
dataResponseListner.ReceiveDataError();
}
}
// ============================================================================
class LoadDataTask extends AsyncTask