Android 如何在 DiskLruCache 中使用 ContentProvider

How to use a ContentProvider with DiskLruCache in Android

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

是否可以实现一个 ContentProvider,我可以用它来将 Bitmap 对象转换成某种文件,比如在我的 WebView 中加入 <img src="content://my/image.png">

重写 ContentProvider#openFile(Uri uri, String mode),如果您的内容是内存缓​​存数据并且您不能 return ParcelFileDescriptor#open(File file, int mode)ParcelFileDescriptor#fromFd(int fd)ParcelFileDescriptor#fromSocket(Socket socket) 使用辅助方法ContentProvider#openFileHelper(Uri uri, String mode) 或使用 ParcelFileDescriptor#createPipe() 并实施您的自定义生产者部分