我正在为我的应用程序实现会话管理器。每次恢复活动时,它都会检查会话是否处于活动状态。如果是,则激活开始,否则它显示另一个验证用户的活动。每当活动暂停时,它都会在会话管理器中设置当前时间。当有活动时,会话处于活动状态,或者暂停时设置的最后一个时间戳不超过x分钟。
问题在于,如果用户更改时间设置,由于时间戳部分,会话可能会再次显示为活动状态。
我想用更改日期和时间设置时启动的服务来解决这个问题(我知道有描述此事件的意图)并重置会话。它只需要在应用程序仍在运行时运行,因为会话管理器将是一个静态类,在进程完成时会丢失状态。
我如何创建这样的服务?
答案 0 :(得分:1)
您不应该为此提供服务。您应该能够在BroadcastReceiver
(以及可能ACTION_TIME_CHANGED
的清单中实施ACTION_TIMEZONE_CHANGED
,因为我不确定这是否会影响您的会话)。在onReceive()
中,检查并查看您是否有会话。如果不这样做,则用户更改了应用程序未运行的时间,您就可以了。如果你有会话,那么你可以采取你想要的任何步骤(例如,使会话无效)。