我刚开始做我的第一个Android应用程序,恰好是一个RSS阅读器。我做了一些谷歌搜索,但没有看到明确的参考。我想要做的是将我的xml文件(提要文件)缓存到SD卡,这样当手机离线时,用户仍然可以通过在没有检测到网络时自动告诉应用程序查找提要来查看提要。我现在拥有的是缓存图像的机制,但我想知道如何将其用于其他文件,因为它仅针对使用HashMap()将其转换为Bitmap的图像指定。
答案 0 :(得分:4)
我认为首选方法是(就像Umakant Patil评论你的问题一样)将数据存储在SQLite数据库中。您通常会编写一个后台服务,它会立即使用服务器端数据刷新您的数据库。您的应用程序将始终只读取您的SQLite数据库。请注意,服务和应用程序通常会彼此独立地生活(您的应用程序永远不会直接与您的服务通信)。
从架构的角度来看,此过程也更安全一些。您的应用程序将永远不会依赖于网络流量导致的网络连接或时序问题。它只依赖于本地设备上的数据和数据库访问。
提示#1: 您可以将一个条目传递给AlarmManager,它将以给定的间隔唤醒您的服务。您的服务将使您的数据库与RSS源同步,然后自行终止(节省资源总是好的: - )
Android中有一个很好的Android服务示例:http://developer.android.com/reference/android/app/Service.html
关于内容提供商: http://developer.android.com/guide/topics/providers/content-providers.html
提示#2: 请注意,您不一定需要内容提供程序与数据库通信。如果您希望“标准化”数据库通信,则可以使用内容提供商。也许您的应用程序的几个组件需要访问它甚至几个应用程序,然后使用已经定义的“事实上的标准”访问数据库的方式是很好的。