Logo
Section 1 / 4

缓存解决方案

在本章中,我们将通过实现离线支持来提升用户体验,确保应用程序启动时,博客列表界面能够立即显示缓存数据。 本节课将介绍 Android 平台上可用于实现离线支持的数据缓存方案。

导入

缓存解决方案

在本章中,我们将通过实现离线支持来提升用户体验,确保应用程序启动时,博客列表界面能够立即显示缓存数据。 本节课将介绍 Android 平台上可用于实现离线支持的数据缓存方案。

偏好设置

在 Android 手机上持久化数据最常用的方式之一是使用 SharedPreferences。

SharedPreferences 实际上是一种针对少量数据的键值对存储方案,并自带内存缓存。我们之前已经用它来持久化登录状态。

文件

当数据量过大,不适合使用 SharedPreferences 时,我们可以直接使用普通的文件。

1String filename = "myfile"; 2String fileContents = "Hello world!"; 3try (FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE)) { 4 fos.write(fileContents.toByteArray()); 5}

使用文件的问题在于,我们需要将数据转换为可存储并能后续重建的格式,例如 JSON 字符串,这在某些情况下效率不高。

SQLite

幸运的是,在 Android 中我们可以创建本地数据库——SQLite。

android.database.sqlite 包含了操作数据库的各种 API,从简单的查询到复杂的连接操作都能支持。虽然 Android 的 SQLite 包提供了所需的一切功能,但其 API 相对基础,需要编写大量样板代码。因此,Google 在此基础上开发了一个抽象层,使数据库操作更加便捷。

这一层以独立库的形式提供,名为 Room。在本章中,我们将学习如何使用 Room 数据库来存储和访问博客文章。

旅行博客 - 搜索与排序

Room 数据库