我对如何处理我正在设计的应用程序的数据感到困惑。我想从网上提取一个项目列表。数据会定期更新,我认为最好将所有数据存储在设备上,以便应用程序可以快速加载并在后台线程中刷新数据,而不必在每次启动时等待网络。 / p>
我认为我应该在XML中提供数据并进行线程解析并保存到SQLite DB中,但我不确定这是否是“最佳实践”。还有其他方法可以解决这个问题吗?
答案 0 :(得分:2)
最干净的方式(或者至少,我认为这是最干净的方式)是实现与您的服务器接口的自定义ContentProvider类。您可以查询contenprovider,如果它没有本地缓存中的数据(例如您所说的SQLite数据库),它会从您的服务器下载它并将其添加到本地数据。为什么是内容提供商?因为这样您就可以轻松地跨应用程序访问您的数据,并且您在使用意图时可以通过一种干净的方式获取数据。 此外,我个人不希望在应用程序未运行时下载数据,因为当用户不主动请求数据时,它将耗费电池寿命。
答案 1 :(得分:1)
听起来很合理。
如果下载新数据的时间超过几秒钟,您可能需要使用Service。这样,即使用户离开您的应用,您也可以继续更新。
另外,请考虑如何通知用户正在发生的事情。显示一些进度指示器总是一个好主意。否则,用户可能只是认为数据不是最新的,因为应用程序已损坏。