Android:每个会话运行一次asynctask

时间:2012-04-12 02:43:26

标签: android android-asynctask android-activity

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

我已经阅读了有关使用共享首选项的信息,但我只能在第一次运行该应用时考虑这样做。

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

好的,我想说我从来没有真正能够制定我接受工作的解决方案。它在theroy中是有意义的,但每当我回到同一个屏幕时它会调用finish()方法。因此,每当我回到主屏幕时,我都会检查更新,这是我试图避免的。最后,我最终在unix时间内保存了一个时间戳,然后我检查了自上次检查更新后是否还有15分钟。这很有效。