我有一个包含大约10个以上活动的应用程序。
我正在尝试与后端服务器完成同步。 (我发送一些数据,然后获取一些数据,我存储在数据库中等)
只要我的应用可见,我想保持同步运行。我的问题是没有真正的概念"我的应用现在正在运行"在Android上。此外,用户可以有这么多的退出点,很难知道在哪个onPause / onStop我应该放置我的代码。 (请纠正我,如果我在这里错了请解释。)
请注意,我不会通过此同步机制更改与GUI相关的内容。
我被提出了几个可以总结如下的解决方案。
建议使用哪种方法,如果有其他想法,请分享。
答案 0 :(得分:0)
您可以使用SyncAdapter。有一个Google IO Session on how to sync your app with sync adapter from 2010。 (该链接包含它开始变得有趣的时间,如果这不起作用,它从44分钟开始)
如果您不想使用SycAdapter,并且您的目标是仅在应用程序可见时进行同步,您可以执行以下操作:
创建Service
。每次onResume()
您的活动开始/重新启动它(= app获取forground),在每个onStop()
或onPause()
上停止它(= app在后台获取)。如果服务正在运行,它会同步您的数据。一旦没有活动可见,就没有同步。你可以使用上面提到的ref计数器来保持服务在整个前台阶段运行,这取决于你的同步的实现方式(短同步和长同步)