Android 将SharedReference用作磁盘缓存是否是一种良好的做法?
我需要缓存一个对象,以便在我的应用程序中的每个Android 将SharedReference用作磁盘缓存是否是一种良好的做法?,android,sharedpreferences,android-lifecycle,Android,Sharedpreferences,Android Lifecycle,我需要缓存一个对象,以便在我的应用程序中的每个活动和片段中访问它 我试图使它成为静态的,但是,不幸的是,有时Android操作系统会使这个静态为空,这会无缘无故地使我的应用程序崩溃 那么,使用SharedReferences和Gson来序列化和 将对象缓存到磁盘上?一般来说,您不应该过多地使用SharedReferences,因为它的速度不如本地数据库的,但实际上,如果数据集不太大,并且只需要一个简单的缓存,您可以使用它 一个简单的替代方法是使用 一般来说,你不应该过多地使用SharedRefe
活动
和片段
中访问它
我试图使它成为静态的,但是,不幸的是,有时Android操作系统会使这个静态为空,这会无缘无故地使我的应用程序崩溃
那么,使用SharedReferences
和Gson
来序列化和
将对象缓存到磁盘上?一般来说,您不应该过多地使用
SharedReferences
,因为它的速度不如本地数据库的,但实际上,如果数据集不太大,并且只需要一个简单的缓存,您可以使用它
一个简单的替代方法是使用 一般来说,你不应该过多地使用
SharedReferences
,因为它的速度不如本地数据库的,但实际上,如果你的数据集不太大,而且你只需要一个简单的缓存,你就可以使用它
一个简单的替代方法是使用
SharedReference
用于存储会话之间应保留的数据
如果在应用程序启动之间需要该对象,则可以使用SharedReference
对于您的问题,SharedReference是一个快速的解决方案,但是我仍然鼓励您查找静态变量为null的原因。
SharedReference设计用于存储会话之间应保留的数据
如果在应用程序启动之间需要该对象,则可以使用SharedReference
对于您的问题,共享参考是一个快速解决方案,然而,我仍然鼓励您找出静态变量为空的原因。是使用SharedReferences
或file
并将文件存储在内部存储器中。是使用SharedReferences
或file
并将文件存储在内部存储器中。它是一个仅包含8个变量的对象。但是在每项活动中都会大量使用。因此我想在每项活动开始时使用SharedReferences是的,在onCreate
或onResume
中从SP加载数据并将其保存在经典成员中。顺便说一句,不要在SP.editorit上使用commit
,使用.apply()
。editorit是一个仅包含8个变量的对象。但是在每项活动中都会大量使用。因此我想在每项活动开始时使用SharedReferences是的,在onCreate
或onResume
中从SP加载数据并将其保存在经典成员中。顺便说一句,不要在SP.edit上使用commit
,使用.apply()
,因为Android操作系统会自动为对象设置空值以释放一些内存。所以空值的问题就随机出现了。android操作系统在使用静态变量时不会这样做。一定还有别的原因。你是如何得出操作系统使其为空的结论的?这发生在我身上,我在这里读到了:发现了类似的东西。不过,将整个对象存储在共享首选项中似乎是一个糟糕的设计。这就是安卓操作系统自动为对象设置空值以释放一些内存的原因。所以空值的问题就随机出现了。android操作系统在使用静态变量时不会这样做。一定还有别的原因。你是如何得出操作系统使其为空的结论的?这发生在我身上,我在这里读到了:发现了类似的东西。不过,将整个对象存储在共享首选项中似乎是一种糟糕的设计。