一般情况下,Shared Preferences 不起作用有两种可能: 代码问题或者 Android 本身的问题。 检查下面的解决方案以解决此问题:
对于每个 SharedPreferences 都需要一个唯一的 名称,因此必须确保命名正确:
SharedPreferences prefs = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
//或者
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
检查 XML 文件,确保这个名称正确:
一旦调用 SharedPreferences.Editor 的commit, apply或者 commitAsynchronously方法, SharedPreferences 将不再处于可用状态。 因此,如果您从编辑器中获取 SharedPreferences 后没有调用 commit/apply 方法,它可能不会有效。 在一些情况下,您甚至需要调用 commit/apply 方法,然而 不会立即看到所做的更改, 而是要求您的代码执行一段时间(例如,执行过程中发生异步操作),然后检查 SharedPreferences 内容。
SharedPreferences 应该在应用程序的主线程中使用。如果在不同的线程上使用它, 将导致 Shared Preferences 不起作用或崩溃您的应用程序。
从 SharedPreferences 注册监听器后,必须在不再需要时正确取消注册它们。 长时间运行的监听器可能会导致内存泄漏或其他问题。
SharedPreferences 需要读取