如何使用DownloadCache插件?

时间:2017-10-20 17:37:37

标签: mvvmcross

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

理想情况下,当达到图像/内存限制时,应释放下载的第一个图像(并且是MvxRecyclerView中最远的不可见项目),以便为下一个可见项目腾出空间它的形象。

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

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

修改

在尝试了几件事之后,当我打电话给Mvx.Resolve<IMvxImageCache<byte[]>>().RequestImage(myImageUrl)

时,我遇到了这个错误
  

无法解析类型   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);
});

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

1 个答案:

答案 0 :(得分:1)

文档可用now been fixed。文档似乎暗示:

  1. 使用MvxImageView代替ImageView
  2. 使用MvxDownloadCacheConfiguration覆盖中的Setup.GetPluginConfiguration根据需要自定义缓存选项。