如何在Android中使用带有DiskLruCache的ContentProvider

时间:2016-07-28 17:13:25

标签: android android-contentprovider

在我的Android应用中,我想将图像缓存在磁盘上,然后显示在WebView中,我需要通过某种路径或URI访问文件。 (为了使用<img src="..">。)我发现的所有缓存实现都不提供对绝对文件路径的访问权限,而是返回InputStreamsBitmap个对象。

是否可以实施ContentProvider我可以用Bitmap<img src="content://my/image.png">个对象转换为某个文件,例如WebView中有SkipTo

1 个答案:

答案 0 :(得分:3)

覆盖ContentProvider#openFile(Uri uri, String mode),如果您的内容是内存缓​​存数据而您无法返回ParcelFileDescriptor#open(File file, int mode)ParcelFileDescriptor#fromFd(int fd)ParcelFileDescriptor#fromSocket(Socket socket)使用辅助方法ContentProvider#openFileHelper(Uri uri, String mode)或使用ParcelFileDescriptor#createPipe()并实现您的自定义生成器部分