android+如何封装功能,Android 有缓存功能的请求封装接口

/** @Company 浙 江 鸿 程 计 算 机 系 统 有 限 公 司

* @URLhttp://www.zjhcsoft.com* @Address 杭州滨江区伟业路1号

* @Email [email protected]

* @author jinjr

* @data 2016-1-5 下午2:58:45*/package com.android.hcframe.internalservice.sign;

import android.content.Context;

import android.text.TextUtils;

import com.android.hcframe.CacheManager;

import com.android.hcframe.HcApplication;

import com.android.hcframe.HcLog;

import com.android.hcframe.HcUtil;

import com.android.hcframe.TemporaryCache;

import com.android.hcframe.http.AbstractHttpRequest;

import com.android.hcframe.http.AbstractHttpResponse;

import com.android.hcframe.http.HcHttpRequest;

import com.android.hcframe.http.IHttpResponse;

import com.android.hcframe.http.RequestCategory;

import com.android.hcframe.http.ResponseCategory;

import com.android.hcframe.sql.SettingHelper;

import org.json.JSONObject;

import java.util.Observable;public classSignCache extends Observable implements IHttpResponse, TemporaryCache {private static final String TAG = "SignCache";private final static SignCache CACHE = newSignCache();privateSignCofig mConfig;privateSignCache() {

CacheManager.getInstance().addCache(this);

mConfig= newSignCofig();

}public staticSignCache getInstance() {returnCACHE;

}

@Overridepublic voidclearCache(boolean exit) {if (exit) mConfig = null;else{

clearCache();

}

}private static classSignCofig {/** 纬度*/String mLatitude;/**

* 经度*/String mLongitude;/**

* 标准上班时间*/String mWorkInTime;/**

* 标准下班时间*/String mWorkOutTime;/**

* 当天签到时间*/String mSignInTime;/**

* 当天签出时间*/String mSignOutTime;/**

* 有效距离*/

intmDistance;

}public intgetMaxDistance() {returnmConfig.mDistance;

}public void setMaxDistance(intmaxDistance) {

mConfig.mDistance=maxDistance;

}publicString getLatitude() {returnmConfig.mLatitude;

}public voidsetLatitude(String latitude) {

mConfig.mLatitude=latitude;

}publicString getLongitude() {returnmConfig.mLongitude;

}public voidsetLongitude(String longitude) {

mConfig.mLongitude=longitude;

}publicString getWorkInTime() {returnmConfig.mWorkInTime;

}public voidsetWorkInTime(String workInTime) {

mConfig.mWorkInTime=workInTime;

}publicString getWorkOutTime() {returnmConfig.mWorkOutTime;

}public voidsetWorkOutTime(String workOutTime) {

mConfig.mWorkOutTime=workOutTime;

}publicString getSignInTime() {returnmConfig.mSignInTime;

}public voidsetSignInTime(String signInTime) {

mConfig.mSignInTime=signInTime;

}publicString getSignOutTime() {returnmConfig.mSignOutTime;

}public voidsetSignOutTime(String signOutTime) {

mConfig.mSignOutTime=signOutTime;

}

@Overridepublic voidnotify(Object data, RequestCategory request,

ResponseCategory category) {//TODO Auto-generated method stub

switch(request) {caseSIGNADDR:switch(category) {caseSUCCESS:if (data != null &&data instanceof String) {

parseSignConfig((String) data);

SettingHelper.setSignInfo(HcApplication.getContext(), (String) data);

}break;default:break;

}break;default:break;

}

}

@Overridepublic voidnotifyRequestMd5Url(RequestCategory request, String md5Url) {//TODO Auto-generated method stub

}/**

* 判断签到的一些配置信息是否存在;

* 此方法不是很严谨

* @author jrjin

* @time 2016-1-5 下午3:16:08

* @return*/

publicboolean configExist(Context context) {if(TextUtils.isEmpty(mConfig.mLatitude)) {

String data=SettingHelper.getSignInfo(context);if (!TextUtils.isEmpty(data))parseSignConfig(data);else {//去服务器获取数据

if(HcUtil.isNetWorkAvailable(context)) {

HcHttpRequest.getRequest().sendSignAddrCommand(this);

}//}

}return !TextUtils.isEmpty(mConfig.mLatitude);

}private voidparseSignConfig(String data) {try{

JSONObject body= newJSONObject(data);if (HcUtil.hasValue(body, "latitude")) {

mConfig.mLatitude= body.getString("latitude");

}if (HcUtil.hasValue(body, "longitude")) {

mConfig.mLongitude= body.getString("longitude");

}if (HcUtil.hasValue(body, "signInTime")) {

mConfig.mSignInTime= body.getString("signInTime");

}if (HcUtil.hasValue(body, "signOutTime")) {

mConfig.mSignOutTime= body.getString("signOutTime");

}if (HcUtil.hasValue(body, "workInTime")) {

mConfig.mWorkInTime= body.getString("workInTime");

}if (HcUtil.hasValue(body, "workOutTime")) {

mConfig.mWorkOutTime= body.getString("workOutTime");

}if (HcUtil.hasValue(body, "maxDistance")) {

mConfig.mDistance= body.getInt("maxDistance");

HcLog.D(TAG+ "#parseSignConfig mDistance =" +mConfig.mDistance);

}

}catch(Exception e) {//TODO: handle exception

HcLog.D(TAG + "#parseSignConfig e ="+e);

}

}/**

* 清除缓存

* @author jrjin

* @time 2016-1-28 下午1:45:10*/

public voidclearCache() {

mConfig= newSignCofig();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值