2016-07-27 81 views
0

我的应用程序需要每24小时更新其数据。用户应该无法访问应用程序的某些部分,如果它过时了。Android:应用程序关闭时保持定时器运行

当应用程序启动时,我检查数据库是否过期。但是,用户可能会长时间将应用程序保留在后台,我需要在需要更新时提醒他们。

这样做的最好方法是什么?我最初的想法是使用某种处理程序线程,并在每次暂停应用程序时在某处保存时间戳,然后计算新时间并重新启动计时器。

这留下了两个问题:

  • 我如何检测,每当我的应用程序被暂停或恢复,不管活动的?
  • Android中长时间定时器的最佳成语是什么? (在中期保持它必须能够修改UI组件,即表明报警时,他的时间到了)

回答

0

你能做到这一点,但你不应该,而不是存储时间戳的共享偏好时该应用程序会关闭,再次打开时再次读取该值,并通过获取实际的时间戳 ....来计算差异,然后在必要时更新该更新的时间!

时间戳只是一个长值..

,您可以通过只调用System.currentTimeMillis()

并为共享偏好使用类SharedPreferences

0

你可以有一个服务得到它做每24小时查询一次,并通知用户是否失败。您可以使用AlarmManager。例如:

AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
Intent m_intent = new Intent(this, YourService.class); 
PendingIntent pi = PendingIntent.getService(this, 2, m_intent, 0); 
alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000 * 24 * 60 * 60, pi); 

然后服务可以要求AlrmManager在24小时后再次使用上述代码调用自己。

注意:系统或用户可以取消警报(强制停止)。所以,这个解决方案带来了一些警告。

相关问题