将 SharedPreferences 用作磁盘缓存是一种好习惯吗?

Is it good practice to use SharedPreferences as disk cache?

我需要缓存一个对象以便在我的应用程序中每个 ActivityFragment 访问它。

我试图做到这一点 static,但是,不幸的是,有时 Android OS 将此静态设为 null,这使我的应用程序无故崩溃。

所以使用 SharedPreferencesGson 来序列化和 在磁盘上缓存对象?

一般来说,您不应该过多地使用 SharedPreferences,因为它不如本地数据库快,但实际上,如果您的 数据集不是太大 并且您只需要一个简单的缓存,则可以使用它。

一个简单的替代方法是使用 Realm

sharedPreferences 旨在存储应在会话之间保留的数据。

如果您在应用程序启动之间需要该对象,则可以使用 sharedPreference。

对于你的问题,sharedPreference 是一个快速的解决方案,但我仍然鼓励你找到你的静态变量为 null 的原因。