2

好的,我一直在研究这个问题一段时间,我还没有找到一个好的答案。我有一个异步任务,它通过 Web 服务检查我的数据库是否有更新。我只想在我的应用程序上为每个用户会话检查一次(现在每次我回到主屏幕时都会检查一次)。因此,如果我关闭应用程序并且进程停止并且他们再次打开它,它将再次检查 Web 服务。

我已经阅读了有关使用共享首选项的信息,但我只能想到第一次运行该应用程序。

我考虑在我的共享首选项中保存一个时间戳,然后检查自上次时间戳以来是否已超过 30 分钟。但这对于我需要的东西来说似乎很复杂。

有什么想法吗?

4

2 回答 2

3

共享偏好实际上非常简单。您可以将变量设置为共享首选项。例如“0”当您启动异步时,该值更改为“1”。所以 async 永远不会运行。退出时,将共享首选项设置回“0”。下次用户启动程序时,asyncTask 将运行并再次将值设置回“1”。这样当您返回主屏幕时,asyn 将不会运行。这是你想要的?

于 2012-04-12T02:57:06.143 回答
2

好的,我想说我从来没有真正能够使我接受的解决方案起作用。这在理论上是有道理的,但每次我回到同一个屏幕时它都会调用 finish() 方法。因此,我每次回到主屏幕时都会检查更新,这是我试图避免的。最后,我确实只是在 unix 时间中保存了一个时间戳,然后我检查了它是否是自上次检查更新以来的 15 分钟。那效果很好。

于 2012-04-17T19:49:17.670 回答