package com.partynetwork.dataprovider; import com.partynetwork.dataprovider.json.CommonRequest; import com.partynetwork.dataprovider.json.JsonNetwork; import com.partynetwork.dataprovider.json.JsonResponse; import com.partynetwork.dataprovider.json.NetworkEntity; import com.partynetwork.dataprovider.util.GPS; import android.content.Context; /** */ public class DataProvider { /** 成功 */ public static final int SUCCESS = 1; /** 失败 */ public static final int FAILED = 0; /** 未知 */ public static final int UNREGIST = -1; /** * 异步处理监听的钩子接口 * */ public interface AysTrigger { // 正在异步中 public void onAsying(); // 异步请求完了 public void onAsyed(); } /** * 数据提供模块对象 * */ private static DataProvider mDp; // 钩子对象 private AysTrigger mTrigger; /** * 上下文对象 * */ private Context mContext; /** json 数据回调接口 */ public interface IJsonResultListener { /** * 请求开始 */ public void onNetworkRequest(); /** * 请求成功 * * @param response * 成功的消息体 */ public void onResultSuccess(NetworkEntity entity); /** * 请求失败 * * @param resutlt * 失败说明 */ public void onResultFail(String result); } /** 构造函数 */ public void DataProviderContext(Context paramContext) { this.mContext = paramContext; } /** * 获取gps信息 * * @param listener */ public void getLocation(GPS.OnGpsChangeListener listener) { GPS gps = GPS.instance(listener); gps.startGPS(); } /** * 获取数据提供对象 * **/ public static synchronized DataProvider getInstance() { if (mDp == null) { mDp = new DataProvider(); } return mDp; } /** * json解析 * * @param CommonRequest * 请求数据包(多态利用必要) * @return int JsonResponse.RESULT_SUCCESS 异步回调等待必要 * @since 2011-04-20 * */ public int getJsonFromNetwork(CommonRequest paramRequest, IJsonResultListener paramListener) { if (null == paramRequest) { return JsonResponse.RESULT_FAILED; } if (null != mTrigger) { // 异步处理开始 // mTrigger.onAsying(); } paramListener.onNetworkRequest(); JsonNetwork jnt = new JsonNetwork(mContext, paramListener); jnt.setTrigger(mTrigger); jnt.execute(paramRequest); return JsonResponse.RESULT_SUCCESS; } /** * 析构函数 * * @attention 程序结束时调用 * @type 同期函数 * */ public void finish() { if (null != mDp) { mDp = null; } } /** * 注册钩子监听对象 * */ public void setTriggerListener(AysTrigger paramTrigger) { this.mTrigger = paramTrigger; } }