我需要监视SD卡中的文件(递归)。由于广播接收器可以通过设置特定的意图筛选器“action”来接收系统事件,因此我们可能可以使用它来处理文件更改事件,如打开、删除等。我们只需要知道清单文件中要设置哪些“actions”、“category”和“data”值以及要使用的任何特定“user permissions”。
另一种方法是实现fileobserver,但是垃圾收集有问题,即使我们创建一个服务来保存它的对象,当资源不足时(点5.2http://www.vogella.com/articles/AndroidServices/article.html)服务本身也可能被终止,因此它不是一个完全的证明方法。
请告诉我哪些配置值将使BroadcastReceiver能够接收此类事件/意图?

最佳答案

由于广播接收器可以通过设置特定的意图过滤器“action”来接收系统事件,因此我们可能可以使用它来处理文件更改事件,如打开、删除等。
不。普通的Java I/O操作不会导致广播。
另一种方法是实现fileobserver,但这与垃圾收集有问题,即使我们创建一个服务来保存其对象,当资源不足时,服务本身也可能被终止…所以这并不是一个完全的证明方法。
除了修改固件之外,没有“万无一失”的方法可以让您连续监视外部存储操作。
我将使用AlarmManager定期扫描目录中的更改,用户选择一个轮询周期,这样他们就可以控制应用程序的电池和CPU消耗。

关于android - 通过BroadcastReceiver替代FileObserver吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10506677/

10-11 22:35
查看更多