通过方向更改保存下载的位图

时间:2012-09-17 16:51:26

标签: android caching screen-orientation

我有一个使用自定义ArrayAdapter填充的ListView。每行都包含一张图片和一些从互联网上下载的文字。

问题是更改设备的方向会重置所有内容。 ListView为空,它再次开始下载文本和图像!

我该如何避免这种情况?

2 个答案:

答案 0 :(得分:2)

问题的根源是Android在方向更改时重新创建活动。您可以通过覆盖onSaveInstanceState()onRestoreInstanceState()来保存/恢复活动状态。保存您认为对您的活动很重要的内容,以便在方向更改后看起来相同。

另一个选项是通过在您的活动中将以下内容添加到Android XML来禁用重新创建活动:

android:configChanges="orientation|keyboardHidden"

如果您使用AsyncTask下载位图,此选项也可以帮助您。如果每次都重新创建活动,则必须停止下载任务并重新启动它。

答案 1 :(得分:1)

您需要通过覆盖onSaveInstanceState和onRestoreInstanceState来自行处理配置更改。 您还可以通过添加

使Android不重新启动您的活动
 android:configChanges="orientation|keyboardHidden" 
在你的清单中

此外,您可能需要浏览http://developer.android.com/training/displaying-bitmaps/display-bitmap.html以获取有关在Android中使用位图的重要提示。