gpt4 book ai didi

java - 最初从本地数据库表填充 UI,然后如果 Web 服务有新的数据更新表和 UI

转载 作者:行者123 更新时间:2023-12-01 04:22:22 25 4
gpt4 key购买 nike

好的,这是我的第一篇文章,

我有一个从本地数据库表填充的ListView。从那里我必须检查网络服务是否有新数据可用,如果是的话,我首先必须更新该特定表,然后更新 UI。

现在我需要大致了解如何实现这个?

来自 Web 服务的数据不会频繁更改。所以我需要创建一些架构/机制,其中数据始终首先从数据库加载,然后如果可以从 Web 服务获取新数据,那么我解析服务更新表,然后更新 UI。

基本上我想要这样的东西

    MainThread
|
|
|-------->>--------separate thread----->>-----|
| |
| listener/ query db,
populate UI <<----------- observer/ ------<<----get data
| something |
| |
| |
| |
| check if we have new data--->> if no-- DONE
| |
| if yes
| |
| call web service,
| fetch data,
| update table
| listener/ |
update UI <<-------------observer/-----<<--------|
| something
|

有点像 Tumblr android 应用程序..

现在我认为我可以通过将 AsyncTask 包装在类和接口(interface)(作为观察者/监听器)中来实现此目的

但我喜欢使用Loader(在android中可用),

还有其他建议吗?

最佳答案

问得好!

您似乎正在尝试实现著名的 Google I/O 设计模式? Google IO Rest design pattern, Finished ContentProvider and stuck now https://www.youtube.com/watch?v=xHXn3Kg2IQE

我过去曾这样做过(也许没有达到应有的效果;-))。我的建议是确保这两点:

  • 您的表格不太复杂
  • 您的更新并不总是发生。

如果不是这种情况,您可能会因数据库访问而面临性能问题。但这确实是一个很好的模式。

另一个建议是使用事件总线而不是样板式的、令人沮丧的界面来更新 UI。 (我通常使用这个 https://github.com/greenrobot/EventBus 没有性能问题,Otto 也很好而且简单,但与 android 注释集成得不好)。

希望对您有所帮助。

关于java - 最初从本地数据库表填充 UI,然后如果 Web 服务有新的数据更新表和 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com