Android监听SD卡文件变化_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android监听SD卡文件变化

Android监听SD卡文件变化

 2014/6/4 17:36:14  xiaochao1234  博客园  我要评论(0)
  • 摘要:今天再一次使用到FileObserver,上一次使用还是很久之前了。总结一下FileObserver里留的一些“坑”1、FileObserver只能监听一个目录下的“一级”子文件,也就是说FileObserver不支持监测一个目录下嵌套子目录的文件;2、关于FileObserver中的onEvent(intevent,Stringpath)函数。其中event在使用过程中发现总是一个很大的数,这与api中定义的1,2,4...512常量不相符
  • 标签:android 文件 变化 监听

今天再一次使用到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、可以指定要针对文件的哪些操作动作进行监听:比如   static final int mask = (FileObserver.CREATE |      FileObserver.DELETE |      FileObserver.DELETE_SELF |     FileObserver.MODIFY |     FileObserver.MOVED_FROM |     FileObserver.MOVED_TO |     FileObserver.MOVE_SELF);           public PathFileObserver(String root){     super(root, mask);       ... ...     }
发表评论
用户名: 匿名