为了账号安全,请及时绑定邮箱和手机立即绑定

SharedPreferences 是外部存储还是内部存储?

SharedPreferences 是外部存储还是内部存储?

ibeautiful 2023-03-31 17:16:25
其实,这个问题是在采访中被问到的。首先,面试官问是不是SharedPreference一种存储方式,然后是存储在外部还是内部。我完全糊涂了,因为我已经研究过android中的四种存储数据。
查看完整描述

5 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

共享首选项是内部存储。



查看完整回答
反对 回复 2023-03-31
?
白衣非少年

TA贡献1155条经验 获得超0个赞

  • 共享首选项:将私有原始数据存储在键值对中。

  • 内部文件存储:将应用程序私有文件存储在设备文件系统上。

  • 外部文件存储:将文件存储在共享的外部文件系统上。这通常用于共享用户文件,例如照片。

  • 数据库:将结构化数据存储在私有数据库中。


查看完整回答
反对 回复 2023-03-31
?
米脂

TA贡献1836条经验 获得超3个赞

如果您以这种方式创建它:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();

它在内部存储中,实际上,这是它保存的路径:

/data/data/PACKAGE_NAME/shared_prefs/MY_PREFS_NAME.xml


查看完整回答
反对 回复 2023-03-31
?
潇湘沐

TA贡献1816条经验 获得超6个赞

好吧,共享首选项也终于保存在内部文件存储中了。

Share preferences 就像键值对一样,它会将数据保存在内存中,最后由系统保存到内部文件存储中。


查看完整回答
反对 回复 2023-03-31
?
跃然一笑

TA贡献1826条经验 获得超6个赞

共享首选项不能被任何人或任何东西(机器人等)访问,因为它是内部应用程序存储。这也是您可以在其中存储某些类型的原因。但是,这并不意味着您的手机中不存在该文件。正如@Ali 指出的那样,它存在于此处:


/data/data/PACKAGE_NAME/shared_prefs/MY_PREFS_NAME.xml

如果您的 SharedPreferences 名为MY_PREFS_NAME。您还会注意到它们的存储类型不同,MODE_PRIVATE、MODE_APPEND 等。有关更多信息,请参阅此链接(它详细介绍了所有模式):https://developer.android.com/reference/android/content/Context


还有共享首选项:https://developer.android.com/reference/android/content/SharedPreferences


获得它的方法是:


SharedPreferences storage = getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE);

storage.putString(ID, VALUE);

storage.apply(); //Same the Value

这是如果您想从共享首选项(内部存储)中获取值。如果你想存储任何东西,你可以这样做(@Ali 已经写过这个):


SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();

editor.getString(ID, VALUE_TO_RETURN_IF_KEY_NOT_FOUND);


查看完整回答
反对 回复 2023-03-31
  • 5 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信