一、在实际开发中需要固定时间去请求更新下菜单数据,逻辑如下
int chcheTime= 60 * 60;//定义缓存时间
String lastRefreshTime = 这里取出SharedPreferences存储的时间
String currTime = TimeUtil.getCurTimeStr();
long diff=0;
if (lastRefreshTime!=null) {
diff = TimeUtil.calDateDifferent(lastRefreshTime, currTime);
}
//取到本地数据集
List localList = db.getArticleTypeList();
// 缓存超过有效时间,则重新请求数据
if (NetUtil.isNetworkAvailable(getActivity())&&(diff > chcheTime || localList == null ||localList.size() == 0|| sync)) {
//这里请求接口数据,请求成功后需要将时间存到SharedPreferences里头
} else {
//这里填充本地数据,可能取数据库数据
}
二、如果请求接口数据成功
SharedPreferences 保存当前时间 TimeUtil.getCurTimeStr()
三、以下是TimeUtil
public class TimeUtil {
/**
* 格式:年-月&