SharedPreferences 不是 List 而是 Set

SharedPreferences takes not List but Set

我需要跨活动传递 ArrayList 并使其持久化。 从一个流行的 SO post 我找到了 solution。但我仍然不明白为什么 API 11 的 SharedPreference 需要一个 Set SharedPredferences.getStringSet但不是直接这么普通的ArrayList。 什么是逻辑原因,例如。例如,为了避免使用 Set 重复?

With reference of this,SharedPreference 背后的概念是为您的应用程序设置构建一个用户界面。您只能在共享首选项中添加键值类型的数据。

如果您只需要在单个进程中保留简单的标志和您的应用程序 运行s SharedPreferences 可能就足够了。这是一个很好的默认选项。

There are two reasons why you might not want to use SharedPreferences:

  1. 性能:您的数据很复杂或者很多
  2. 多个进程访问数据:您有小部件或远程 运行 在自己的进程中并需要同步的服务 数据

您应该可以使用 Bundle 将列表共享到其他活动。如果它是全局使用的东西,请将其保存在您的 Database(Sqlite)