Android 安卓SD卡安装延迟

Android 安卓SD卡安装延迟,android,Android,我的应用程序中有一个活动,它基本上是一个画廊,显示SD卡上的图片。我正在使用此功能重新安装SD卡,以便在活动开始时扫描新图像: sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 问题是当我这样做的时候,画廊不会显示更新的图片,因为android需要时间来扫描。因此,我在这之后进行了睡眠,

我的应用程序中有一个活动,它基本上是一个画廊,显示SD卡上的图片。我正在使用此功能重新安装SD卡,以便在活动开始时扫描新图像:

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));    
问题是当我这样做的时候,画廊不会显示更新的图片,因为android需要时间来扫描。因此,我在这之后进行了睡眠,以等待扫描完成,如下所示:

    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));    

    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

这可以工作,但会使应用程序暂停2秒钟。是否有更好的方法通过放置加载对话框来处理此问题?我不确定如何确定SD卡扫描何时完成,以便我可以继续活动。

这绝对是一种不好的方法。首先,
Thread.sleep()
通常是应该避免的。其次,无法确保扫描已经完成(如果有很多图片或速度较慢的设备怎么办?)

更好的方法是异步执行此操作。您可以设置一个用于侦听的。此意图将包含您前面提供的目录作为数据字段