Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在LRUCache中保存图像时,将图像恢复到方向更改时的策略是什么_Android - Fatal编程技术网

Android 在LRUCache中保存图像时,将图像恢复到方向更改时的策略是什么

Android 在LRUCache中保存图像时,将图像恢复到方向更改时的策略是什么,android,Android,我正在使用LRUCache从服务器下载图像并显示在活动视图上。我没有将这些图像保存到永久存储器(例如SD卡)。 我的问题是,当我的方向改变时,我的LRUCache的对象被破坏,在方向改变后,我无法恢复图像 在使用LRUCache之前,我将图像存储在bundle中,因此,使用onSaveInstanceState(bundle)很容易解决这个问题。但如何使用LRUCache对象实现这一点。救命啊 最简单的方法是为该页面使用片段。然后您可以执行setRetainInstance(true)以防止操作

我正在使用LRUCache从服务器下载图像并显示在活动视图上。我没有将这些图像保存到永久存储器(例如SD卡)。 我的问题是,当我的方向改变时,我的LRUCache的对象被破坏,在方向改变后,我无法恢复图像


在使用LRUCache之前,我将图像存储在bundle中,因此,使用onSaveInstanceState(bundle)很容易解决这个问题。但如何使用LRUCache对象实现这一点。救命啊

最简单的方法是为该页面使用片段。然后您可以执行
setRetainInstance(true)
以防止操作系统在配置更改时销毁片段


另一种方法是将LruCache放入应用程序派生的类中。这也是在活动之间保持持久数据的一种方法。

最简单的方法是为该页面使用片段。然后您可以执行
setRetainInstance(true)
以防止操作系统在配置更改时销毁片段


另一种方法是将LruCache放入应用程序派生的类中。这也是在活动之间保持持久数据的一种方法。

在onSaveInstanceState中,尝试使用
LruCache.snapshot()
获取缓存项的映射,从最少使用到最近使用。然后可以将每个键、值写入包中。然后在从捆绑包还原时,迭代每个条目并将它们放回LruCache中。

在onSaveInstanceState中,尝试使用
LruCache.snapshot()
获取缓存条目的映射,从最少使用到最近使用。然后可以将每个键、值写入包中。然后在从捆绑包还原时,迭代每个条目并将它们放回LruCache。

创建一个单独的类,其中包含一个保存LRU类的静态变量,您的LRU不会被销毁,因为它是一个单独的引用

class MyLRU { 

     public static LruCache<String, Bitmap> mMemoryCache = new .....

}

创建一个单独的类,其中包含一个保存LRU类的静态变量,您的LRU不会被销毁,因为它是一个单独的引用

class MyLRU { 

     public static LruCache<String, Bitmap> mMemoryCache = new .....

}

伙计!谢谢但如果你能给我几行代码来演示这个,我会更方便。:)伙计!谢谢但如果您能给我几行代码来演示这一点,我会更方便。:)