返回

Flutter 学徒:9 - 首选项 (SharedPreferences)

前端

想象一下吧。你正在浏览菜谱,发现了一个你喜欢的菜。你很着急,想把它收藏起来以后再查看。你能建立一个能实现这个功能的 Flutter 应用吗?你当然可以! 继续阅读,了解如何做。

在本章中,你的目标是学习如何使用 SharedPreferences 在 Flutter 应用中存储和检索本地数据。你将学习如何使用键值对存储数据,以及如何使用首选项更改应用的默认行为。

1. 为什么需要本地数据存储?

在 Flutter 应用中,本地数据存储有许多用途。一些常见的用途包括:

  • 存储用户设置,如首选语言、主题或默认位置。
  • 存储临时数据,如最近查看的项目或购物篮中的商品。
  • 存储应用程序状态,如当前用户或当前查看的页面。

2. SharedPreferences 是什么?

SharedPreferences 是 Flutter 中用于本地数据存储的类。它提供了一个简单的方法来存储和检索键值对数据。SharedPreferences 是异步的,这意味着它不会阻塞你的应用。

3. 如何使用 SharedPreferences?

要使用 SharedPreferences,你首先需要创建一个实例。你可以使用 SharedPreferences.getInstance() 方法来做到这一点。

final sharedPreferences = await SharedPreferences.getInstance();

一旦你有了 SharedPreferences 实例,你就可以使用 setString()setInt()setBool() 等方法来存储数据。

sharedPreferences.setString('username', 'alice');
sharedPreferences.setInt('age', 20);
sharedPreferences.setBool('is_admin', true);

要检索数据,你可以使用 getString()getInt()getBool() 等方法。

String username = sharedPreferences.getString('username');
int age = sharedPreferences.getInt('age');
bool isAdmin = sharedPreferences.getBool('is_admin');

4. SharedPreferences 的注意事项

以下是一些使用 SharedPreferences 时需要注意的事项:

  • SharedPreferences 只能存储简单的数据类型,如字符串、整数和布尔值。如果你想存储复杂的数据类型,如列表或映射,你需要将它们序列化为字符串或 JSON。
  • SharedPreferences 是异步的,这意味着它不会阻塞你的应用。但是,如果你在数据存储或检索操作完成后需要执行某些操作,你可以在操作完成后使用 await 来等待它完成。
  • SharedPreferences 的数据是保存在设备上的,这意味着它可以被其他应用访问。如果你存储敏感数据,你需要使用加密来保护它。

5. 总结

SharedPreferences 是一个简单的类,可以让你在 Flutter 应用中存储和检索本地数据。它非常适合存储用户设置、临时数据和应用程序状态。