使用缓存的ListView的Android Activity的生命周期?

时间:2011-03-14 02:40:16

标签: android caching listview android-activity lifecycle

我已经实现了一个listView,它显示了在我的Web服务器上下载的项目。 listView使用'cache'(holder),我点击listView的一个项目并调用一个intent(新活动)。它运行得很好,但是当我从这个活动回到我的listView时,会调用onStart()并再次调用下载(而我不需要它,因为我使用'cache')。

如何解决此问题?我需要在一个函数中调用webserver,当我回到这个活动时它不会调用它。

由于

Florent的

1 个答案:

答案 0 :(得分:0)

如果您尝试在活动之间缓存图像,则有两种方法:

  1. 将文件写入SD卡 - 如果您希望图像在活动结束并重新启动后仍然存在,这可能会很方便。缺点是您现在必须管理映像的生命周期,并确保定期删除它们,以便缓存目录不会持续增长。

  2. 使用服务 - 我不确定这种方法的性能如何,而且往往会有点复杂。当您的活动来来往往时,服务将继续生活,将您的图像保存在记忆中。有关与服务进行通信的更多信息,请阅读this answer

  3. 将图像存储在静态单例中 - 快速而肮脏的方式;只要确保你没有在内存中存储太多内容,否则你会得到一个内存不足的例外。

  4. 我可能更喜欢方法1。

    另请参阅this comprehensive answer