我需要监控SD卡中的文件(递归)。由于广播接收器可以通过设置特定的意图过滤器“动作”来接收系统事件,我们可以使用它来处理文件更改事件,如打开,删除等。我们需要知道的是“动作”,“类别”和“动作”。 “数据”值将与清单文件中的任何特定“用户权限”一起设置。
另一种方法是实现FileObserver,但这有垃圾收集的问题,即使我们创建一个服务来保存其对象,当资源不足时,服务本身可能被终止(点5.2 http://www.vogella.com/articles/AndroidServices/article.html)所以它不是完全是一种证明方法。
您能告诉我哪些配置值会使BroadcastReciever接收此类事件/意图吗?
答案 0 :(得分:3)
由于广播接收器可以通过设置特定的意图过滤器“动作”来接收系统事件,我们可以使用它来处理文件更改事件,如打开,删除等。
没有。普通的Java I / O操作不会导致广播。
另一种方法是实现FileObserver但是这有垃圾收集的问题,即使我们创建一个服务来保存其对象,当资源不足时,服务本身可能会被终止......所以它不完全是一个完整的证明方法。
除了修改固件之外,没有“万无一失”的方法可以持续监控外部存储操作。
我会使用AlarmManager
定期扫描目录以查找更改,并使用用户选择的轮询周期,以便他们可以控制应用程序的电池和CPU消耗。