3

我需要监视放置在 SD 卡中的文件(递归)。由于广播接收器可以通过设置特定的意图过滤器“动作”来接收系统事件,我们大概可以使用它来处理打开、删除等文件更改事件。我们只需要知道什么是“动作”、“类别”和“数据” " 值将与要使用的任何特定“用户权限”一起在清单文件中设置。

另一种方法是实现 FileObserver 但这有垃圾收集的问题,即使我们创建一个服务来保存它的对象,服务本身也可能在资源不足时终止(点 5.2 http://www.vogella.com/articles/ AndroidServices/article.html)所以它不完全是一个完整的证明方法。

您能否告诉我哪些配置值将使 BroadcastReceiver 能够接收此类事件/意图?

4

1 回答 1

3

由于广播接收器可以通过设置特定的意图过滤器“动作”来接收系统事件,我们可以使用它来处理文件更改事件,如打开、删除等。

不会。普通的 Java I/O 操作不会产生广播。

另一种方法是实现 FileObserver 但这有垃圾收集的问题,即使我们创建一个服务来保存它的对象,服务本身也可能在资源不足时终止......所以它不是一个完整的证明方法。

除了修改固件之外,没有“万无一失”的方法可以让您持续监控外部存储操作。

我会使用AlarmManager用户选择的轮询周期定期扫描目录的更改,以便他们可以控制您的应用程序的电池和 CPU 消耗。

于 2012-05-08T22:56:11.847 回答