Android:保存recyclerview';s数据以避免网络呼叫

Android:保存recyclerview';s数据以避免网络呼叫,android,android-fragments,android-recyclerview,Android,Android Fragments,Android Recyclerview,我的应用程序中有一个RecyclerView。当从RecyclerView单击一个项目时,它会打开新的活动 新活动包含两个片段,这两个片段都从网络调用加载数据。我使用了静态变量来存储数据,以便下次打开片段时不会进行网络调用。这可以正常工作,但当我从RecyclerView单击其他项目时,新活动会显示包含先前所选项目数据的片段,因为变量是静态的。如何避免这种情况?如果你有id,在某个地方存放这些recyclerview项目,你可以做的只是用该id将数据保存在SharedReference或SQli

我的应用程序中有一个
RecyclerView
。当从
RecyclerView
单击一个项目时,它会打开新的活动


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

如果你有id,在某个地方存放这些recyclerview项目,你可以做的只是用该id将数据保存在SharedReference或SQlite数据库中,并且在需要回拨时,从id本身调用。

如果你有id,在某个地方存放这些recyclerview项目,您只需使用该ID将数据保存在SharedReference或SQlite数据库中,并在需要回拨时从ID本身调用即可。

最好使用数据库,但如果您不想这样做,或者数据在某个时间后发生更改,您可以使用android中提供的
LruCache
类,并使用项目id作为键。这使您可以控制如何存储项目,并通过删除最近最少使用的项目来节省内存。

最好使用数据库,但如果您不想这样做,或者数据在一定时间后发生变化,您可以使用android中提供的
LruCache
类并使用项目id作为键。这使您可以控制如何存储项目,并通过删除最近最少使用的项目来节省内存。

静态变量会导致内存泄漏。最好使用数据库。如果您想要一些全局变量,最好使用缓存mechanis或应用程序类,而不是使用静态变量!是否可以将加载的数据存储在SharedReference中,然后按backpress清除共享首选项。@Androidjack否。这不是一个好方法。数据库将解决导致内存泄漏的变量问题。最好使用数据库。如果您想要一些全局变量,最好使用缓存mechanis或应用程序类,而不是使用静态变量!是否可以将加载的数据存储在SharedReference中,然后按backpress清除共享首选项。@Androidjack否。这不是一个好方法。数据库将解决这个问题