我没有遇到什么问题。我正在刷新我的SD卡:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
并且我创建了ProgressDialog
,其中一个微调器在开始时弹出(“在开始时” - 我的意思是在sendBroadcast方法之后),并且在成功刷新之后我想解雇它,但我没有想法如何检查MediaScanner
完成了他的工作。我尝试使用BroadcastReciver
和sendStickyOrderedBroadcast(...)
,但似乎这是错误的想法......
我无法使用MediaScannerConnection
和OnScanCompletedListener()
因为我没有文件的直接路径(在某些情况下,它不存在)。
有谁知道如何解决我的问题?我已经没有想法了
答案 0 :(得分:1)
发送广播时,您无法期待结果。 你获得一个的唯一方法是接收者(在这种情况下是接收ACTION_MEDIA_MOUNTED广播的MediaScannerService)发送自己的广播,并在“作业”上发布更新。
您应该能够捕获ACTION_MEDIA_SCANNER_FINISHED以了解当前情况,但是如果您想要更多控制(即扫描特定文件或扫描进度),您可以实施MediaScannerConnectionClient。