2

我有一个我认为在 Android 应用程序中很常见的场景。我知道已经进行了部分解决该问题的尝试,但直到现在我还没有偶然发现完整的实施。我打算尝试实现这样的组件并在之后开源它,但我需要你的帮助来设计它。

所以基本上我的情况如下:我有一个列表视图,显示从网络加载的图像和每行的文本。我想延迟加载图像,为每个图像设置默认值,并仅在下载图像时将其替换为真实图像。我还想保留图像缓存,避免在短时间内多次下载图像。

到目前为止,我已经找到了几个部分工作的实现,包括:

我还看到了几个关于这个问题的 stackoverflow 问题:1 , 2 , 3

但是,我还有一个要求,这使我的任务更加复杂:我允许我的应用程序的用户将自己与一些图像关联起来。每当用户导航到主屏幕时,我都想加载与用户关联的新图像。从它他应该能够看到他的图像,甚至在它们都被下载之前,在这种情况下,默认占位符应该再次可见(注意跨屏幕转换)。这样的用例是:

  • 列出用户的 youtube 视频的应用
  • facebook 的应用程序 - 考虑朋友的图像
  • 提供支持用户收藏等新闻的应用程序

请注意,我想开始在主屏幕上获取与用户相关的新数据,以提供更好的用户体验。我会将用户相关数据永久保存在本地。

问题

所以我的基本问题是我应该使用什么方法来实现图像下载?我知道 Android 手册说Service只有在我想执行任务时才使用,即使应用程序没有运行。另一方面,我将在主屏幕上开始图像下载,并在用户导航到新屏幕(Activity)时将下载链接到 UI 元素 - 与用户相关的列表视图,我不知道如何使用AsyncTask(不是我有一个非常精确的想法如何使用Service其中任何一个)。

任何建议将不胜感激,包括链接。

4

1 回答 1

2

Universal Image Downloader是一个很好的库,它可以帮助您通过设置在后台进行图像下载。

它有很多功能,您可以按照自己的方式实现。

于 2012-12-18T13:26:19.567 回答