Android监听SD卡文件变化
2015-03-13 17:01
645 查看
今天再一次使用到FileObserver,上一次使用还是很久之前了。总结一下FileObserver里留的一些“坑”
1、FileObserver只能监听一个目录下的“一级”子文件,也就是说FileObserver不支持监测一个目录下嵌套子目录的文件;
2、关于FileObserver中的onEvent(int event, String path)函数。其中event在使用过程中发现总是一个很大的数,这与api中定义的1,2,4...512常量不相符。需要将event & FileObserver.ALL_EVENTS,才能得到sdk中定义的常量。究其原因,貌似event中的高位附带了一些信息;
3、经过试验发现如果监听的目录被删除了,FileObserver就没有作用了。即使后来再创建一个同样的目录。我要的效果是监听一个目录下的文件,如果这个文件被删除了就重新生成一个该文件,在调试中发现第一次删除整个目录后能重新生成,但是之后再删除就不起作用了(删除单个文件应该没有问题)。应该就是提到的这个原因。有一个解决方法就是通过handler方式,异步线程重新生成了文件后通知service,再重启对该目录的监测即可。
4、可以指定要针对文件的哪些操作动作进行监听:比如
?
1、FileObserver只能监听一个目录下的“一级”子文件,也就是说FileObserver不支持监测一个目录下嵌套子目录的文件;
2、关于FileObserver中的onEvent(int event, String path)函数。其中event在使用过程中发现总是一个很大的数,这与api中定义的1,2,4...512常量不相符。需要将event & FileObserver.ALL_EVENTS,才能得到sdk中定义的常量。究其原因,貌似event中的高位附带了一些信息;
3、经过试验发现如果监听的目录被删除了,FileObserver就没有作用了。即使后来再创建一个同样的目录。我要的效果是监听一个目录下的文件,如果这个文件被删除了就重新生成一个该文件,在调试中发现第一次删除整个目录后能重新生成,但是之后再删除就不起作用了(删除单个文件应该没有问题)。应该就是提到的这个原因。有一个解决方法就是通过handler方式,异步线程重新生成了文件后通知service,再重启对该目录的监测即可。
4、可以指定要针对文件的哪些操作动作进行监听:比如
?
相关文章推荐
- android 监听SD卡文件变化
- android 监听SD卡文件变化
- Android监听SD卡文件变化
- Android Service监听SD卡某目录变化,并获取文件Path
- android 监听SD卡文件变化的实现代码
- Android sd卡状态监听,文件搜索,媒体文件刷新
- android SD卡文件监听
- android SD卡文件变化监控
- Android sd卡状态监听,文件搜索,媒体文件刷新
- Android 4.4 SD卡文件读写变化
- 监听FTP文件变化
- Android 7.0 隐式广播-监听网络变化
- android 打开SD卡文件夹,并获得选中文件的路径怎么实现?
- Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果
- Android SD卡简单的文件读写操作
- Android中SD卡的操作 - 文件读写及容量计算
- Android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等。
- android动态注册广播,监听网络状态变化,判断网络模式
- Android 中读取SD卡文件时抛出NullPointerException错误解决办法
- android 通过GPS获取用户地理位置并监听位置变化