gpt4 book ai didi

java - AsyncTask 用于在后台下载图像

转载 作者:行者123 更新时间:2023-12-01 23:09:47 36 4
gpt4 key购买 nike

我的应用程序向用户一张一张地显示图像。图像是从服务器下载的。由于我不希望用户等待下载图像,因此我将这些图像缓存在本地文件系统中(例如新的 50 张图像)。

实现:从 onCreate 方法启动一个 AsyncTask ,它将继续在后台下载图像。AsyncTask 最适合此用例吗?我不想使用 Service,因为我不希望连续进行下载

AsyncTask 最适合此目的吗?

最佳答案

我建议使用现有的库,例如 Picasso (由 Square 提供)或 Volley (由 Google 提供)。

Picasso 特别容易实现,并且非常适合您的目的,并且简单如下:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

您不必担心 AsyncTasks 或 AsyncTaskLoaders,因为该库将所有这些都从您手中夺走,将图像缓存在内存和磁盘上。

如果您坚持构建自己的解决方案,我建议您四处寻找相关问题,因为有很多事情需要记住:

  • AsyncTasks 可能不适合,因为它们直接与单个 Activity 耦合;您需要一个加载器或类似于加载器的机制来将结果传递给任何需要图像的 Activity 。
  • 在较旧的设备上,位图驻留在不由 GC 管理的特殊内存区域中;使用完位图后,您必须手动处理它们。
  • 位图使用大量内存,需要小心管理以避免 OOME,例如在 LruCache 内加载和存储到内存中时对其进行下采样。<​​/li>
  • 将图像写入磁盘时,请注意管理图像缓存目录的大小。

关于java - AsyncTask 用于在后台下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192401/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com