首页 > 解决方案 > 版本高于 Android 4.4 的 sendBroadcast(intent, string)

问题描述

在阅读了android文档和许多论坛之后,这是我的理解。

sendBroadcast(intent, string)适用于 Android 4.4 或更低版本。此外,它还用于在创建或更新文件时“刷新”设备存储。

scanFile(context, string)可用于更高的 Android 版本(例如 Android 5.1),它用于在创建文件时“刷新”设备存储,但不适用于修改过的文件。

这是我的问题:由于sendBroadcast(intent, string)不能用于Android 4.4以上的版本,有什么替代方法可以达到相同的效果? (我scanFile(context,string)当然尝试过使用,但文件内容被修改时不刷新。)

标签: android

解决方案


使用LocalBroadcastManager .sendBroadcast() 因为它更有效,并且允许您避免考虑与其他应用程序能够接收或发送您的广播相关的任何安全问题。

与使用以下方式发送全局广播相比,这具有许多优点Context.sendBroadcast()

  1. 您知道您正在广播的数据不会离开您的应用程序,因此无需担心泄露私人数据。

  2. 其他应用程序不可能将这些广播发送到您的应用程序,因此您不必担心它们会利用安全漏洞。

  3. 它比通过系统发送全局广播更有效。


推荐阅读