需求:要求app每天使用超过90分钟告诉服务器进行统计
分析:1.计算累计时间,进行保存,因为app会被退出
2.每天只执行一次,也就需要判断当天
判断当天代码:
/**
* @param context 当前Context
* @return true表示没有运行过 false表示已运行过
*/
public static boolean IsRun(Context context){
String news = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String old = SPUtils.getString(context,"date","0000-00-00");
if(!news.equals(old)){
//存下时间
SPUtils.putString(context,"date", news);
Timber.v("===今天==="+news);
return true;
}
return false;
}
累计计算:每过10秒写入下缓存
if (TimeUtils.IsRun(this)) {
handler.sendEmptyMessageDelayed(1, 10000)
}
private var stayTime: Int = 0
private var handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
when (msg.what) {
1 -> {
if (stayTime >= 5400) {
checkinpresenter.getCheckin()
return
}
stayTime += 10
SPUtils.putInt(this@HomeActivity, "staytime", stayTime)
sendEmptyMessageDelayed(1, 10000)
}
}
}
}
记得告诉服务器后将累计时间设置为0,第二天才能用
网友评论