保存的图像需要一段时间才能显示在图库中

时间:2013-07-20 13:29:30

标签: android

所以在我的应用程序中,我正在保存一张照片,然后它出现在手机的图库中。我认为它看起来很快,但它不是即时的,因此我得到了不好的评论。我已经看到了应用程序,它们立即出现在画廊中,我希望我的同样可以避免更糟糕的评论。我正在使用sendBroadcast,我认为这是最快捷的方式,但我想我错了。

 public File savePhoto(File pic,String ext)
{
    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Pics");



    // Create the storage directory if it does not exist
    if (!mediaStorageDir.exists())
    {
        if (!mediaStorageDir.mkdirs()) return null;
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile=null;

    mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + "."+ext);
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Pics"))));

    Toast.makeText(this, "Image Saved", Toast.LENGTH_SHORT).show();

    return mediaFile;
}

1 个答案:

答案 0 :(得分:1)

我在这里错了。 sendBroadcast() Intent.ACTION_MEDIA_MOUNTED sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(mediaFile))); 非常征税,可能导致延误。

您可以尝试使用以下内容:

mediaFile

我正在使用您在sendBroadcast()方法上方创建的{{1}}。这应该更好,因为你只关注一个文件。