【发布时间】:2016-03-07 04:13:18
【问题描述】:
我有以下情况:
我有一项服务会定期检查互联网上的新数据,
- 当有新数据可用时,它们会被下载并保存在 sqlite 上。
- 当保存到数据库完成后,服务会广播一个意图,以便活动知道从数据库中提取新数据。
用户可能想要请求立即更新...
...在这种情况下,我使用 Messenger 请求服务查找新数据
问题出在这里:
通知用户请求正在进行,但可能需要一段时间,可能不成功,永远无法返回...
目前,我从 Service 向 Activity 返回一条消息(使用 Messenger),通知请求的结果,或者,如果我没有收到消息,我会在 x 秒内通知用户请求不成功。
- 请问您能建议一种不同的方法吗?
- 我不喜欢等待 对于一条消息,如果在 x 秒后没有收到任何消息,请通知 用户,有没有更好的方法?
【问题讨论】:
-
“但可能需要一段时间,可能不成功,永远不会回来......”这些都是常见的风景吧?如果网络低或者服务器由于某种原因响应延迟,客户端必须相应地处理并通知用户。如果我误解了您的问题,请纠正我。
-
你在使用 SyncAdapter 吗??
-
@LucasCrawford nope Lucas
-
您应该真正使用 SyncAdapter 进行自动更新,因为它优化了网络使用,以便 Android 收音机在电池使用方面以最佳方式工作。从您已经描述的设置方式开始,这是一个非常简单的升级,并改进了您的应用程序。关于您的问题,我认为您无能为力。数据库要么返回数据,要么不返回数据,并且取决于您如何处理查询时间,您可以为用户做的就是告诉他们请求失败。最佳做法是针对所有特定情况(网络、服务器、输入)提供适当的消息
-
您可以显示通知。