猿问

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

其实,这个问题是在采访中被问到的。首先,面试官问是不是SharedPreference一种存储方式,然后是存储在外部还是内部。我完全糊涂了,因为

我已经研究过android中的四种存储数据。


ibeautiful
浏览 157回答 5
5回答

红糖糍粑

共享首选项是内部存储。

白衣非少年

共享首选项:将私有原始数据存储在键值对中。内部文件存储:将应用程序私有文件存储在设备文件系统上。外部文件存储:将文件存储在共享的外部文件系统上。这通常用于共享用户文件,例如照片。数据库:将结构化数据存储在私有数据库中。

米脂

如果您以这种方式创建它:SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();它在内部存储中,实际上,这是它保存的路径:/data/data/PACKAGE_NAME/shared_prefs/MY_PREFS_NAME.xml

潇湘沐

好吧,共享首选项也终于保存在内部文件存储中了。Share preferences 就像键值对一样,它会将数据保存在内存中,最后由系统保存到内部文件存储中。

跃然一笑

共享首选项不能被任何人或任何东西(机器人等)访问,因为它是内部应用程序存储。这也是您可以在其中存储某些类型的原因。但是,这并不意味着您的手机中不存在该文件。正如@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);
随时随地看视频慕课网APP

相关分类

Java
我要回答