首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android设计-内容提供商加上实时信息-如何显示?

Android设计-内容提供商加上实时信息-如何显示?
EN

Stack Overflow用户
提问于 2016-06-27 17:38:21
回答 1查看 330关注 0票数 0

这里有一些有趣的事情-我如何显示来自我的内容提供商的信息,以及来自web的一些实时数据(我不想保存到我的内容提供商?)。

1.CursorLoader和CursorAdapter不会执行IMO,因为我不想将信息保存到内容提供商。

2.异步任务和更新onPostExecute中的视图不起作用,因为现在我正在通过cursorAdapter等显示来自内容提供商的信息,而且由于屏幕本身是一个AdapterView子类,当加载完成时,视图可能属于其他元素(回收)

3.服务不能像#2那样工作(除此之外,在这种情况下,后台线程与UI耦合,所以这看起来不是一个自然的解决方案)。

*如果图片不清晰,可选具体细节从这里开始*

假设我有一些允许用户跟踪股票的应用程序。我有一个内容提供者,它在路径content://whatever.my.package.name/follows中有一些关于用户正在关注哪只股票的信息,它是否已经被发送到我的服务器(所以它确实已经有一些‘实时’数据通过它显示),用户感兴趣的参数,等等。

在显示此信息时,我希望包含来自web的一些实时信息。我已经实现了必要的方法,但我想不出一个自然的解决方案(见上)。特别是,实时数据肯定不能保存在相同的路径(/follows)上,因为当我考虑对象" follow“时,这不是我脑海中的自然部分,但我确实想要显示关于股票的实时信息,并且它确实与屏幕上显示的follow相关(例如,follow包括起始价,因此我们希望显示从起始价到同一股票的实时价格的变化等)。

我想不出一个好的设计我可以使用,所以我将感谢帮助:)

EN

回答 1

Stack Overflow用户

发布于 2016-06-29 15:37:13

如果阻止您使用内容提供者的唯一原因是您不想在其中存储信息,那么就不要存储它。请记住,提供程序只是某个数据源之上的一些抽象。没有人会阻止您使用内存中的sqlite数据库来存储实时数据。

然后,您就有了两个数据源,并且可以在它们上构建关系以用于显示目的,例如使用sqlites、attach_database或代码。当然,一旦提供程序关闭,实时数据就会消失,因此您必须能够处理这种情况。

编辑

嗯,好的。所以接触提供者是行不通的。您说这些视图是适配器视图。如何使用Volley或类似的方法来获取适配器本身中的数据并将其缓存到适配器中。无论何时请求视图(即使用RecyclerView时在“onBindView”中),都要检查适配器缓存中的数据。如果它不存在或已过时,则开始获取数据。当请求返回时,通知适配器数据集已更改。然后,它将再次开始请求视图,从而使下一个缓存探测命中。如果要获取游标中每个项目的数据,请尝试将项目的索引/位置传递给请求,这样就可以通知适配器某个特定项目已经更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38050533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档