博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 文件监听器
阅读量:6858 次
发布时间:2019-06-26

本文共 1163 字,大约阅读时间需要 3 分钟。

hot3.png

一. 概述:

 

     .os包下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,基于的INotify。

 

     FileObserver是个抽象类,必须继承它才能使用。每个FileObserver对象监听一个单独的文件或者文件夹,如果监视的是一个

 

     文件夹,那么文件夹下所有的文件和级联子目录的改变都会触发监听的事件。

 

二. 监听的事件类型:

 

     (1)ACCESS,即文件被访问。

 

     (2)MODIFY,文件被修改。

 

     (3)ATTRIB,文件属性被修改,如 chmod、chown、touch 等。

 

     (4)CLOSE_WRITE,可写文件被 close。

 

     (5)CLOSE_NOWRITE,不可写文件被 close。

 

     (6)OPEN,文件被 open。

 

     (7)MOVED_FROM,文件被移走,如 mv。

 

     (8)MOVED_TO,文件被移来,如 mv、cp。

 

     (9)CREATE,创建新文件。

 

     (10)DELETE,文件被删除,如 rm。

 

     (11)DELETE_SELF,自删除,即一个可执行文件在执行时删除自己。

 

     (12)MOVE_SELF,自移动,即一个可执行文件在执行时移动自己。

 

     (13)CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)。

 

     (14)ALL_EVENTS,包括上面的所有事件。

 

               注:上面的所有静态变量都是FileObserver静态属性。

 

三. 例:

 

    (1)创建目录监听器:

import android.os.FileObserver;   

import android.util.Log;   
  
/**  
 * SD卡中的目录创建监听器。  
 * 
 * mayingcai
 */  
public class SDCardListener extends FileObserver {   
 
       public SDCardListener(String path) { 
              /*  
               * 这种构造方法是默认监听所有事件的,如果使用 super(String,int)这种构造方法,  
               * 则int参数是要监听的事件类型.  
               */  
              super(path);   
       }   
   
       @Override  
       public void onEvent(int event, String path) {          
              switch(event) {   
                     case FileObserver.ALL_EVENTS:   
                            Log.d("all", "path:"+ path);   
                            break;   
                     case FileObserver.CREATE:   
                            Log.d("Create", "path:"+ path);   
                            break;   
              }   
      }   
}

转载于:https://my.oschina.net/u/2502529/blog/812922

你可能感兴趣的文章
nginx的内页跳转总结
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
Java基础学习总结(1)——equals方法
查看>>
Oracle学习笔记之sqlplus登录
查看>>
利用Oracle VPD实现行级安全保护(一)
查看>>
免费 webservice 收集
查看>>
Java实现的闰年测试程序
查看>>
Redis整合Spring结合使用缓存实例
查看>>
UML学习总结(1)——UML学习入门
查看>>
Shell 基础之变量、条件判断
查看>>
XStream Deserializable Vulnerablity And Groovy CVE-2015-3253漏洞分析
查看>>
XML转换成数组
查看>>
Servlet
查看>>
关于mysql数据库备份的一些选项和参数
查看>>
使用SDL动态显示鼠标的位置信息(四)
查看>>
MYSql安装
查看>>
Xenserver 中为虚拟机增加多个光驱
查看>>
UIPopoverController 常见问题
查看>>
kali linux 2017.2 OpenVAS9.0安装和使用
查看>>
PX Deq: Table Q Normal等待事件
查看>>