android - 如何检查 sendBroadcast 是否完成了他的工作

标签 android

我没遇到什么问题。我正在刷新我的 SD 卡:

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

并且我创建了 ProgressDialog,它带有一个在开始时弹出的微调器(“在开始时”——我的意思是在 sendBroadcast 方法之后),在成功刷新后我想关闭它,但是我不知道如何检查 MediaScanner 是否完成了他的工作。我尝试使用 BroadcastReciversendStickyOrderedBroadcast(...),但它似乎是错误的想法...

我不能使用 MediaScannerConnectionOnScanCompletedListener() 因为我没有文件的直接路径(在某些情况下,它不存在)。 有谁知道如何解决我的问题?我已经没有想法了

最佳答案

当您发送广播时,您不能期望有结果。 您将获得一个的唯一方法是接收器(在本例中为捕获 ACTION_MEDIA_MOUNTED 广播的 MediaScannerService)发送其自己的广播并更新“作业”。

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

关于android - 如何检查 sendBroadcast 是否完成了他的工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9795475/

相关文章:

Android GridView 自定义 BaseAdapter ImageView ImageButton OnItemClick 不起作用

Android将图像添加到文本(在 TextView 中)?

javascript - Phonegap camera.getPicture 上传问题

android - 在 Android 中处理多点触摸,例如捏合和捏合

android - 为什么即使数据库中没有数据仍会调用 OnDataChange()?

android - 使用Android Studio 3.5中的Build Variant重命名应用程序的存档名称

java - Android Studio(IntelliJ),maven构建工具: Failed to load dx. jar

android - XBox 360 TCP 堆栈不响应具有 0 字节有效负载的 TCP 零窗口探测

java - Google Firebase 方法 onDataChange() 未调用

android - Android 测试中的模拟 Api 响应