我有一个android应用程序,在我的一项活动中,我正在打电话说“客户”,此呼叫是对外部API进行的,当我得到响应时,我将其作为JSON对象获得。我遇到的问题是我在活动中有一个ListView,单击它的项目时它会向您显示详细信息,但是当您单击“后退”按钮时,我必须再次拨打电话以填充它。在Samsung Galaxy 4S中,似乎保留了列表视图的数据,但是在HTC android中,它令人难以置信。所以我要做的是,使其重新绑定OnResume(),这解决了两个问题,但结果是再次调用该服务器。当它有10或100个客户时,这并不重要,但我知道有些帐户的帐户数最多为5000,并且我敢肯定它会崩溃。

我有什么选择可以提高Android在此问题上的性能?我尝试了一个静态变量,但在某个时候该对象也被清除了。

Android应用程序通常如何处理从API检索数据并且需要将其存储在整个应用程序中而无需再次调用相同信息的这种情况?,我在考虑静态对象,但我想确保我以正确的方式这样做。

最佳答案

您有两种选择。

1)您可以将数据缓存在内存中。例如,您可以进行静态缓存,也可以在Activity或App对象中缓存数据。如果仅在一个视图中执行此操作,并且数据量不大,那么这可能是个好的解决方案。但是,如果您必须对许多活动执行此操作,并且必须缓存大量数据,则可能要选择选项2。另外,将数据存储在android的内存中并不意味着不会浪费收集(在某些情况下,即使您对此有参考)。

2)您可以将数据缓存在内部存储中并不时刷新。
您可以在此处找到有关内部存储及其使用方式的更多信息:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

基本上,您将响应存储在内部存储中的特定标识符下。下次打开活动时,请检查存储中是否包含该标识符的数据,如果是,则读取并显示它。如果否,则进行API调用。

请记住,您将不得不不时刷新缓存。

07-25 22:45
查看更多