2016-10-05 56 views
1

我在我的应用程序中有一个RecyclerView。当从RecyclerView点击一个项目时,它会打开新的活动。Android:保存recyclerview的数据以避免网络电话

新活动包含两个片段,这两个片段都加载来自网络调用的数据。我已经使用静态变量来存储数据,以便下次打开一个片段时不会进行网络调用。这可以正常工作,但是当我点击RecyclerView中的其他项目时,新的活动将显示包含先前选定项目的数据的片段因为变量是静态的。如何避免这种情况?

+0

'Static'变量导致内存泄漏。它更好地使用数据库。 – Piyush

+0

而不是更好地使用静态变量将使用缓存机制或应用程序类,如果你想有一些全局变量! –

+0

是否可以将加载的数据存储在sharedPreference中以及在后台清除共享首选项。 –

回答

0

如果你有id,在那些recyclerview项目的某个地方,你可以做的只是将数据保存在SharedPreference或SQlite数据库中,并且每当你需要将它回调时,从ID本身调用。

0

最好的方法就是使用数据库,但如果你不想这样做,或者数据在一段时间后改变了,你可以使用android中提供的LruCache类,并使用item id作为key。这使您可以控制您想要如何存储项目以及通过删除最近使用的项目来节省内存。