Android:每个会话运行一次异步任务



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

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

我想过在我的共享首选项中保存一个时间戳,然后检查自上次时间戳以来是否已经过去了 30 多分钟。 但这似乎使我需要的东西变得复杂。

有什么想法吗?

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

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

最新更新