android - SharedPreferences里存 "JSON.stringify"数据不好吗?

标签 android sharedpreferences

我无法在 SQLite 和 SharedPreferences 之间做出选择。

我可以用

JSON.parse(SharedPreferences.getString("data","qweqwe");

s.putString(key,JSON.stringify(JSONObject));

或者创建一个新的大类来将我的(文本)数据存储在 SQLite 中。 (PS:JSON.*是我自己的类)

什么会更快、更好?

我知道 SharedPreferences 用于“键值”数据,SQLite - 用于大量结构化数据。但在我的例子中,将 JSON 格式的数据存储在 SP 中并通过 key 访问会更容易。主要问题 - 它会变慢还是变快?优缺点?

最佳答案

一方面,这是一个稍微主观的问题(不是最适合 stackoverflow 的问题)。另一方面,从字面上理解你的问题标题,客观答案是“不,这不是”。

然而,推理有点主观,因为它“取决于”情况。

SharedPreferences 类实际上是存储在应用程序私有(private)(内部)存储中的文件的包装器/帮助器 - 据我了解,它是一个 XML 文件。基于这个事实,再问问自己……“将 JSON 格式的字符串保存在 XML 文件中是否不好”?

正如您在问题的评论中提到的那样,使用 SQLite 数据库将意味着编写额外的代码,而 SharedPreferences 的优点是任何扩展的 Android 类都可以通过名称访问给定的首选项文件Context包括ApplicationActivityService

关于android - SharedPreferences里存 "JSON.stringify"数据不好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820013/

相关文章:

android - SeekBar 未设置实际进度。 SetProgress() 不适用于早期的 Android 版本

android - 如何将自定义布局添加到 Arrayadapter?

android - Gson:由于 ExclusionStrategy 错误无法编译项目

android - 在我的 AppCompatActivity 中获取 'The method setSupportActionBar(Toolbar) in the type AppCompatActivity is not applicable for the arguments (Toolbar)'

android - 在 FragmentActivity 中读取 Fragment 中的 SharedPreferences 数据

java - Android 共享首选项问题

android - Kotlin MutableStateFlow.collect 正在删除值

android - 使用共享首选项在 android 应用程序中存储 pin

android - 如何访问android中 Activity 之间的共享偏好?

java - 我们可以在同一个类中拥有两个共享偏好的实例吗?