【问题标题】:Strange problem when trying to reload images in android尝试在android中重新加载图像时出现奇怪的问题
【发布时间】:2011-06-20 00:04:50
【问题描述】:

所以,问题是我已经下载了几张照片并将它们存储在手机上的data/data/project/username 目录中,我想在每次用户使用用户名时显示它们(无需先再次下载)正在使用我的应用程序。

因此创建了一个链接列表,其中包含手机上存储这些照片的路径,每次下载新照片时,我都会将其添加到此链接列表中。每次创建/停止活动时,我都会反序列化/序列化包含这些链接的列表。

序列化部分似乎工作正常,因为我检查过并且反序列化列表似乎包含指向手机上照片的正确链接,但是当我开始这个活动时,屏幕上什么都没有出现(在此之前我正在下载每次用户登录时的照片,它们都被正确显示,一切都很好),并且在 logcat 中没有任何错误。在将照片网址添加到列表时,我首先以为我有一些错字,但我检查了一下,一切似乎都很好。有任何想法吗? (想想)

【问题讨论】:

  • 为什么要手动使用序列化?在 Android 中有一个名为 Bundle 的对象,专门用于存储/检索活动状态。基本上,当活动暂停时,您使用捆绑包来存储您的链表,然后在活动恢复时将其取回。阅读此问题以获取更多信息:stackoverflow.com/q/151777/422931
  • 感谢您的链接,gulbrandr!
  • 不客气。那么,您的问题解决了吗?
  • 目前还没有。我覆盖了 onSaveInstanceState 方法,并将 ArrayList 实例放置在我存储文件路径的位置以及在捆绑包中下载它们的 url,但它似乎不起作用。当我尝试在 onCreate 方法中从包中获取保存的值时,包始终为空。
  • 您的列表将在 onRestoreInstanceState 方法中从 Bundle 对象中检索,而不是在 onCreate 中。

标签: android image list caching serialization


【解决方案1】:

Flickr 照片具有唯一 ID。当您将照片保存在设备的内部存储器中时,请使用其 ID 作为名称(例如 123456111.jpg)。当用户重新连接到 Flicker 时,只需检查其图库中的每个图像是否已下载。

缓存目录最好使用getCacheDir(),因为它是由Android自动管理的。

【讨论】:

猜你喜欢
  • 2021-09-25
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 2020-11-14
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多