我的应用需要计算从用户点击按钮到再次点击按钮的时间。用户应该能够“走动”其他应用和活动,当他再次打开我的应用时 - 计数器将保持稳定计数。
现在我让计数器在后台运行AsyncTask,但是当用户“逛逛”并摆弄其他应用程序和活动然后回来时 - 我的应用程序不计算在内。这就像你第一次启动应用程序一样。
我需要做些什么才能让它在后台和活动生命周期中继续工作和计数?
感谢
答案 0 :(得分:3)
为什么不记录计数开始的时间并从应用重新出现的时间中减去它,然后使用该值恢复显示器必须完成的任何动态计数任务?
例如: 1.用户在000秒开始应用程序。以毫秒为单位的sys时间戳是11100000(或其他) 2. app运行5秒钟。 3.用户打开他们的电子邮件应用等。 4. 20秒后,用户恢复计时器应用程序。 5. app计算偏移量; 11100025 -11100000 = 25。 6. app在25点恢复“打勾”。
答案 1 :(得分:1)
如果您真的想这样做,请使用Service。
您的使用应该是这样的,当您想要开始计算您创建活动的意图以启动您的服务时,您开始每隔一秒左右发送一个广播,您将在活动中收到广播。
您必须在您的活动上实施广播接收器,并在onResume和onPause方法上注册和取消注册。
用户再次点击按钮后,将活动中的广播/意图发送给您的服务,告知其停止计数。
该服务不受您活动生命周期的约束,只要它没有收到广播/意图告诉它停止,它就会运行。
答案 2 :(得分:0)
答案很简单,您需要一项可以计算您需要计算的任何内容的服务。