Android共享图片无法从之前共享的项目中清除预览

jag*_*kye 9 java android android-intent

简单的问题,我已经设置了代码来创建图像的位图并通过Action_Send共享它.当它被共享时,正确的图像会发送,但是在消息字段中显示的图像的预览(如果您通过文本发送它)显示以前共享的项目.有没有办法强制刷新预览?下面的图片显示了我正在谈论的领域.那里的预览不是当前共享的图像,而是许多共享前一个从未清除过的图像.

http://i.stack.imgur.com/dT78Z.png

private Intent getShareIntent() 
{ 
Intent shareIntent = new Intent(Intent.ACTION_SEND); 
File sdCard = Environment.getExternalStorageDirectory(); 
File sharedFile = new File(sdCard+"/SaveDirectory/mypicture.png"); 
Uri uri = Uri.fromFile(sharedFile);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, uri); return shareIntent; 
}
Run Code Online (Sandbox Code Playgroud)

rpa*_*abi 4

我看到同样的问题。此问题仅存在于少数应用程序中,例如 Google 的 keep、g+ 等应用程序。

如果文件相同,这些应用程序会保留预览。不知道他们为什么做出这样的假设。简而言之,预览会按文件保留,即使文件更改后也不会更新。我们无法修复这些应用程序,因此解决方案是避免更新同一文件。

使用File.createTempFile()创建临时文件,以确保创建新的唯一文件。这样预览就会得到更新。

就我而言,我在缓存目录(getCacheDir() 或 getExternalCacheDir())中创建了这些临时文件,并在 onDestroy() 上清除缓存。