[英]How to transfer sharedpreferences file from internal storage to external storage?
[英]SharedPreferences is external or internal storage?
其实这个问题是在面试的时候问的。 首先,Interviewer问了SharedPreference
是一种存储方式,然后是外部存储还是内部存储。 我完全糊涂了,因为
我已经研究过android中四种类型的商店数据。
共享首选项是内部存储。
那么,共享首选项最后也保存在内部文件存储中。
Share 首选项就像键值对一样,它将数据保存在内存中,最后由系统保存到内部文件存储中。
如果您以这种方式创建它:
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
它在内部存储中,实际上,这是它保存的路径:
/data/data/PACKAGE_NAME/shared_prefs/MY_PREFS_NAME.xml
任何人或任何东西(机器人等)都无法访问共享首选项,因为它是内部应用程序存储。 这也是您可以在其中存储某些类型的原因。 但是,这并不意味着您的手机中不存在该文件。 正如@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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.