如何检查sendBroadcast是否完成了其工作

5

我有一个小问题。我正在使用以下命令刷新我的SD卡:

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

我创建了一个带有旋转器的ProgressDialog,它会在开始时弹出(“开始”-我的意思是在发送广播方法后),并且在成功刷新后,我想要将其取消,但我不知道如何检查MediaScanner是否完成了它的工作。我尝试使用BroadcastReciversendStickyOrderedBroadcast(...),但似乎这是错误的想法...
我不能使用MediaScannerConnectionOnScanCompletedListener(),因为我没有文件的直接路径(在某些情况下,它不存在)。有人有什么想法来解决我的问题吗?我已经没有更多的想法了。
1个回答

2

当您发送广播时,不能期望有结果。唯一的方式是如果接收器(在这种情况下是捕获ACTION_MEDIA_MOUNTED广播的MediaScannerService)发送自己的广播并更新“工作”。

对于您当前的情况,您应该能够捕获ACTION_MEDIA_SCANNER_FINISHED,但是如果您想要更多的控制(例如扫描特定文件或扫描进度),则可以实现MediaScannerConnectionClient


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接