我在我的活动中获得了大量数据,我需要将其保存在配置更改中并重用它以减少网络请求。我正在考虑共享偏好或将数据放入 Bundle。共享偏好似乎是更昂贵的操作,但我不确定。请建议采取哪种方法更好。
是否也可以将数据保存在单独的线程中,如果活动被破坏,它不会停止吗?
我在我的活动中获得了大量数据,我需要将其保存在配置更改中并重用它以减少网络请求。我正在考虑共享偏好或将数据放入 Bundle。共享偏好似乎是更昂贵的操作,但我不确定。请建议采取哪种方法更好。
是否也可以将数据保存在单独的线程中,如果活动被破坏,它不会停止吗?
如果您只关心通过配置更改来持久化数据,那么您不需要在任何地方持久化它。您可以将对数据的引用放在静态变量中。它将适用于所有活动。
但是请注意,如果您的应用程序进入后台并且 Android 终止了该进程,那么数据将会丢失。如果您需要处理这种情况,那么最好将数据放入数据库中。Shared Preferences 适用于简单数据(原始数据、字符串等),但不适用于结构化数据(复杂对象、列表等)
使用您用来从服务器检索数据并将其存储在数据库中的同一线程。如果你没有 - 创建它。
Activity
由于生命周期问题,我建议不要在里面做线程。扩展Application
和使用Activity.getApplication
.