缓存生成QR码

时间:2012-04-12 17:07:47

标签: android caching qr-code

我使用zxing对qr代码进行编码并将其存储为位图,然后在ImageView中显示。由于图像生成时间很长,我打算将它移动到一个单独的线程(我认为AsyncTaskLoader会很好)。

问题是 - 它是一个图像,我知道为避免内存泄漏,不应该在Activity中存储对它的强引用。

那你怎么做的? 如何缓存图片以应对配置更改(手机轮换)并通常避免生成onCreate()

请指出我正确的方向。

修改 或者,如果我还是使用AsyncTaskLoader,我应该让它完成它的工作并保留Bitmap吗?我的意思是,它应该返回它加载的数据(在这种情况下生成)并在需要时返回它,不是吗?

1 个答案:

答案 0 :(得分:0)

这是一个非常常见的问题:

Saving Android Activity state using Save Instance State Activity restart on rotation Android How to pass an object from one activity to another on Android

您必须使用Parceable对象。 http://chmcguir.wordpress.com/2012/02/12/parcelable-how-to-pass-data-between-android-activities/

修改

这是关于这个主题的官方文章。它使用onRetainNonConfigurationChange()来传递位图

  例如,

Photostream从drawables中提取位图并仅传递位图,而不是drawable。最后,请记住onRetainNonConfigurationChange()应该仅用于保留加载昂贵的数据。否则,保持简单,让Android做所有事情。

http://developer.android.com/resources/articles/faster-screen-orientation-change.html