`
helpbs
  • 浏览: 1161600 次
文章分类
社区版块
存档分类
最新评论

android监听文件和目录的创建删除移动等事件

 
阅读更多

android.os下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于linux的inotify。FileObserver是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。
所能监听的事件类型如下:
ACCESS,即文件被访问
MODIFY,文件被 修改
ATTRIB,文件属性被修改,如 chmod、chown、touch 等
CLOSE_WRITE,可写文件被 close
CLOSE_NOWRITE,不可写文件被 close
OPEN,文件被 open
MOVED_FROM,文件被移走,如 mv
MOVED_TO,文件被移来,如 mv、cp
CREATE,创建新文件
DELETE,文件被删除,如 rm
DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
ALL_EVENTS,包括上面的所有事件
这些都是FileObserver的静态共有属性。
下面举个例子说明一下其用法。
比如,我要监听sd卡的目录创建事件,新建一个类SDCardListener继承FileObserver:

Java代码收藏代码
  1. importandroid.os.FileObserver;
  2. importandroid.util.Log;
  3. /**
  4. *sd卡上的目录创建监听器
  5. *@authorchroya
  6. *
  7. */
  8. publicclassSDCardListenerextendsFileObserver{
  9. publicSDCardListener(Stringpath){
  10. /*
  11. *这种构造方法是默认监听所有事件的,如果使用super(String,int)这种构造方法,
  12. *则int参数是要监听的事件类型.
  13. */
  14. super(path);
  15. }
  16. @Override
  17. publicvoidonEvent(intevent,Stringpath){
  18. switch(event){
  19. caseFileObserver.ALL_EVENTS:
  20. Log.d("all","path:"+path);
  21. break;
  22. caseFileObserver.CREATE:
  23. Log.d("Create","path:"+path);
  24. break;
  25. }
  26. }
  27. }

onEvent是回调,系统监听到事件后会触发此事件,参数event就是上面所说的事件类型,根据类型,我们可以做相应的处理,参数path就是触发事件的目录。

然后使用它:

Java代码收藏代码
  1. SDCardListenerlistener=newSDCardListener("/sdcard");
  2. //开始监听
  3. listener.startWatching();
  4. /*
  5. *在这里做一些操作,比如创建目录什么的
  6. */
  7. //最后停止监听
  8. listener.stopWatching();
如果要在onEvent中做较多操作,最好用线程去做,以免因为阻塞接收不到后面的事件。


最后补充一点,比较重要
FileObserver对象必须保持一个引用,确保不被垃圾收集器回收掉,否则就不会触发事件了

分享到:
评论

相关推荐

    android 监听SD卡文件变化的实现代码

    Android系统API提供了FileObserver抽象类(Linux的INotify机制)来监听系统/sdcard中的文件或文件夹,FileObserver类能对sdcard中的文件及文件夹的打开、创建、移动和删除操作进行监控。下面看看代码实现: (1)...

    Android移动开发实验6.doc

    " "三、实验内容与步骤 " "(1)修改新建项目的res/layout目录下的布局文件activity_main.xml,将" "默认添加TextView组件删除,然后添加一个id为next的按钮,设置显示文字" "为"奋斗"; " "(2)在MainActivity的...

    Google Android SDK开发范例大全的目录

    6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    Google Android SDK开发范例大全(第3版) 1/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的...

    Google Android SDK开发范例大全(第3版) 4/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    Google Android SDK开发范例大全(第3版) 3/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    Google Android SDK开发范例大全(第3版) 5/5

    超酷的娱乐多媒体设计:触控移动事件、建立手势、手势判断控制、屏幕保护程序、启动动画、mp3播放器、3gp影片播放、相机预览拍照、自动对焦、调整音量、信息指令遥控手机、录音控制、自定义动画按钮等 Web Service...

    《Google Android SDK开发范例大全(第3版)》.pdf

     全书共分11章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    Google Android SDK开发范例大全(第3版)part2

     全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——...

Global site tag (gtag.js) - Google Analytics