安卓:从RSS源缓存XML文件

4
我刚开始做我的第一个Android应用程序,这个应用程序恰好是一个RSS阅读器。我在网上查了一些资料,但还没有看到明确的参考资料。我想做的是将我的xml文件(即源文件)缓存到SD卡上,这样当手机离线时,用户仍然可以通过自动告诉应用程序在检测不到网络时查找它来查看源。我现在拥有缓存图像的机制,但我想知道如何将其用于其他文件,因为它只针对使用HashMap()将其转换为位图的图像进行了指定。

我认为你可以通过将RSS保存到SD卡中来实现这一点。每当没有网络连接时,您可以通过从SD卡中获取来完成它。 - chikka.anddev
另一种方法是将XML存储在SQLite数据库中,并在没有连接时从中读取。 - Umakant Patil
1个回答

4
我认为最好的方法(就像Umakant Patil在你的问题上评论的那样)是将数据存储在SQLite数据库中。您通常会编写一个后台服务,定期使用服务器端数据刷新您的数据库。您的应用程序将始终仅从SQLite数据库中读取。请注意,服务和应用程序通常会独立于彼此生活(您的应用程序永远不会直接与您的服务通信)。
从架构的角度来看,这个过程也比较安全。您的应用程序永远不会依赖网络连接或由于网络流量而导致的时间问题。它只会依靠本地设备上的数据和数据库访问。
提示1: 您可以向AlarmManager传递一个条目,以在给定的时间间隔内唤醒您的服务。您的服务将使用RSS源同步您的数据库,然后自行关闭(节省资源总是好的:-))
这里有一个关于Android服务的很好的示例: http://developer.android.com/reference/android/app/Service.html 关于内容提供程序,请参见: http://developer.android.com/guide/topics/providers/content-providers.html 提示 #2: 需要注意的是,您不一定需要内容提供程序来与数据库通信。如果您希望“标准化”您的数据库通信,则内容提供程序很有用。也许您的应用程序的多个组件或甚至多个应用程序都需要访问它,那么最好使用已经定义的“事实上的标准”访问数据库的方式。

谢谢,dbm!你给了我一个好主意。我现在会尝试一下,看看性能是否会有所提高。 - emar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接