Android SDCard安装延迟

时间:2011-05-27 16:37:55

标签: 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卡扫描何时完成,以便我可以恢复活动。

1 个答案:

答案 0 :(得分:3)

这绝对是一个糟糕的方法。首先,Thread.sleep()通常应该避免。其次,无法保证扫描已经完成(如果有很多图片或设备速度很慢?)。

更好的方法是异步执行此操作。您可以设置BroadcastReciever来收听Intent.ACTION_MEDIA_SCANNER_FINISHED。此意图将包含您之前提供的目录作为数据字段。