Android中计算时间差的实现方法

时间:2023-03-29 22:34:47
Android中计算时间差的实现方法

今天为“至简天气”增加了一项功能:在启动时根据上次更新数据的时间判断是否有必要更新数据,因为 weather.com.cn 的实况数据貌似是25分钟才会刷新一次,只有在据上次更新的时间达25分钟以上才会自动更新数据,计算时间差的方法如下:

private boolean isNeedToRefresh(){
  //获取当前时间
  Date curDate = new Date(System.currentTimeMillis());
  //getLastRefreshTime() 从xml文件中读取上次更新数据的时间(long)
  long lastRefreshTime=getLastRefreshTime();
  long diff=curDate.getTime()-lastRefreshTime;
  //getTime() 得到的是以毫秒为单位的long数据
  //除以1000*60转化为以分钟为单位
  diff=diff/(1000*60);
  return diff>=25;//如果间隔大于等于25分钟则自动刷新
}

我在做计算的时候只需要用到分钟单位,因此只是对时间除以1000*60,同理也可以对diff处理转化为小时、天单位的数据。 getLastRefreshTime() 的实现如下:

private long getLastRefreshTime(){
  String spName = getPackageName() + "_preferences";
  SharedPreferences sp = getSharedPreferences(spName, MODE_PRIVATE);/*
  return Long.parseLong(sp.getString("LAST_REFRESH_TIME_LONG","1414053790410"));*/
  return sp.getLong("LAST_REFRESH_TIME_LONG",1414053790410L);
}

另外,我还在更新数据成功之后执行 updateRefreshTime() 来更新保存于xml中的时间数据,在此不再赘述。

版权声明:本文为博主原创文章,未经博主允许不得转载。