如何使用 DownloadCache 插件?

How to use the DownloadCache plugin?

我在我的 Android 项目中使用 MvvmCross。我有一个 MvxRecyclerView ,每个项目都包含一个图像(从 url 下载),并且有数百个项目,所以我想使用 DownloadCache 插件来帮助我管理images/memory 所以我的应用程序不会因 OutOfMemory 异常而崩溃。

理想情况下,当达到 image/memory 限制时,应释放下载的第一个图像(并且是 MvxRecyclerView 中最远的不可见项目)以为下一个可见项目及其图像。

我在这里找到了它的来源: https://github.com/MvvmCross/MvvmCross/tree/develop/MvvmCross-Plugins/DownloadCache

如何使用此插件来实现此目的?

编辑

尝试了一些操作后,我遇到了调用 Mvx.Resolve<IMvxImageCache<byte[]>>().RequestImage(myImageUrl)

时遇到的错误

Failed to resolve type MvvmCross.Plugins.DownloadCache.IMvxLocalFileImageLoader

我是这样注册类型的,不知道为什么解析不了:

Mvx.ConstructAndRegisterSingleton<IMvxLocalFileImageLoader<Bitmap>, MvxAndroidLocalFileImageLoader>();

我正在这样注册 IMvxImageCache

Mvx.RegisterSingleton(typeof(IMvxImageCache<byte[]>), () =>
{
  return new MvxImageCache<byte[]>(Mvx.Resolve<IMvxFileDownloadCache>(), 2, 5000000, true);
});

我觉得我做错了什么...

文档可用 here。文档似乎建议:

  1. 使用 MvxImageView 而不是 ImageView
  2. Setup.GetPluginConfiguration 覆盖中使用 MvxDownloadCacheConfiguration 以根据需要自定义缓存选项。