实际上,这个问题是在采访中提出的。首先,Interviewer询问SharedPreference
是一种存储方法,然后是外部或内部存储位置。我完全感到困惑,因为
我已经在android中研究了四种类型的商店数据。
答案 0 :(得分:1)
共享的首选项是内部存储。
答案 1 :(得分:0)
好吧,共享首选项最后也保存在内部文件存储中。
共享首选项如键值对,它将数据保留在内存中,并最终由系统保存到内部文件存储中。
答案 2 :(得分:0)
如果您以这种方式创建它:
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
实际上它在内部存储中,这是它保存在下面的路径:
/data/data/PACKAGE_NAME/shared_prefs/MY_PREFS_NAME.xml
答案 3 :(得分:0)
任何人或任何事物(机器人等)都不能访问共享首选项,因为它是内部应用程序存储。这就是为什么您可以在其中存储某些类型的原因。但是,这并不意味着该文件在您的手机中不存在。正如@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);
答案 4 :(得分:0)