我已经实现了一个listView,它显示了在我的Web服务器上下载的项目。 listView使用'cache'(holder),我点击listView的一个项目并调用一个intent(新活动)。它运行得很好,但是当我从这个活动回到我的listView时,会调用onStart()并再次调用下载(而我不需要它,因为我使用'cache')。
如何解决此问题?我需要在一个函数中调用webserver,当我回到这个活动时它不会调用它。
由于
Florent的
答案 0 :(得分:0)
如果您尝试在活动之间缓存图像,则有两种方法:
将文件写入SD卡 - 如果您希望图像在活动结束并重新启动后仍然存在,这可能会很方便。缺点是您现在必须管理映像的生命周期,并确保定期删除它们,以便缓存目录不会持续增长。
使用服务 - 我不确定这种方法的性能如何,而且往往会有点复杂。当您的活动来来往往时,服务将继续生活,将您的图像保存在记忆中。有关与服务进行通信的更多信息,请阅读this answer。
将图像存储在静态单例中 - 快速而肮脏的方式;只要确保你没有在内存中存储太多内容,否则你会得到一个内存不足的例外。
我可能更喜欢方法1。