【发布时间】:2012-07-24 20:59:49
【问题描述】:
我有一个ContentProvider,它从 sqlite 数据库中获取数据并通过Loader 加载它。它由Service 更新,它运行AsyncTask 以从服务器下载数据并在ContentProvider 中更新它。我希望它很清楚,但要确定:
ListFragment通过Loader从ContentProvider获取数据,ContentProvider更新为Service。
现在,当我第一次启动应用程序时我的本地 sqlite 数据库为空时,它显示它没有事件,即使它们当前正在通过 Service 下载。我宁愿此时显示ProgressBar(无限旋转的轮子,而不是条形图)。但是,如果我在数据库中没有结果时显示ProgressBar,即使在这种特定情况下从服务器获取数据后,当外部数据库中没有记录时它也会存在(在我的情况下它经常发生)。所以:
当
Service第一次下载数据时我 想显示一个 ProgressBar 直到ContentProvider给出 非空结果或Service完成了它的工作。当
ContentProvider什么也没返回时ANDService完成 这是工作(并获取空结果)我希望应用程序显示 “未找到结果”。
我的问题可能是:如何通知ListFragment Service 仍在运行或它完成了 ts 工作。我的意思是-我不应该在Service 中存储对调用Fragment 的任何引用。这违背了ContentProviders 的想法,不是吗?那怎么办?
注意:我真的不知道哪个代码片段在这里会有所帮助,所以如果您觉得需要查看一些特定的片段,请在 cmets 中告诉我。谢谢!
【问题讨论】:
标签: android android-contentprovider android-progressbar android-loader