比如,我要监听sd卡的目录创建事件,新建一个类SDCardListener继承FileObserver:
Java代码
1. import android.os.FileObserver;
2. import android.util.Log;
3.
4. /**
5. * sd卡上的目录创建监听器
6. * @author chroya
7. *
8. */
9. public class SDCardListener extends FileObserver {
10.
11. public SDCardListener(String path) {
12. /*
13. * 这种构造方法是默认监听所有事件的,如果使用super(String,int)这种构造方法,
14. * 则int参数是要监听的事件类型.
15. */
16. super(path);
17. }
18.
19. @Override
20. public void onEvent(int event, String path) {
21. switch(event) {
22. case FileObserver.ALL_EVENTS:
23. Log.d("all", "path:"+ path);
24. break;
25. case FileObserver.CREATE:
26. Log.d("Create", "path:"+ path);
27. break;
28. }
29. }
30. }
import android.os.FileObserver;
import android.util.Log;
/**
* sd卡上的目录创建监听器
* @author chroya
*
*/
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;
}
}
}
onEvent是回调,系统监听到事件后会触发此事件,参数event就是上面所说的事件类型,根据类型,我们可以做相应的处理,参数path就是触发事件的目录。
然后使用它:
Java代码
1. SDCardListener listener = new SDCardListener("/sdcard");
2. //开始监听
3. listener.startWatching();
4. /*
5. * 在这里做一些操作,比如创建目录什么的
6. */
7. //最后停止监听
8. listener.stopWatching();
SDCardListener listener = new SDCardListener("/sdcard");
//开始监听
listener.startWatching();
/*
* 在这里做一些操作,比如创建目录什么的
*/
//最后停止监听
listener.stopWatching();
如果要在onEvent中做较多操作,最好用线程去做 ,以免因为阻塞接收不到后面的事件。
最后补充一点,比较重要 :
FileObserver对象必须保持一个引用,确保不被垃圾收集器回收掉,否则就不会触发事件了。
分享到:
相关推荐
web监听器代码web监听器代码web监听器代码web监听器代码web监听器代码web监听器代码
go-ethereum监听合约事件.zip
第3章:网络监听及防御技术-2021.ppt
根据"如数家珍"app的公开源码修改的小栗子,能简单实现sd卡的文件修改状态监听,亲测可用,初学者可以学习一下~ 共同进步~
Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...
本文档帮助管理员更迅速的解决网络问题 介绍了很多使用工具 从入门到精通:网络监听技术全解 —— 网络监听全解:普通网管变网络高手
Android应用源码开发Demo,主要用于毕业设计学习。
Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...
Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...
前几年的Android应用源码Demo,主要面向的是学生毕业设计学习。
Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...
自己花了 一晚上搞出来的,没有找到合适的,最后自己根据观看博客的总结,做了此demo 下载运行即可
Android应用源码开发Demo,主要用于毕业设计学习。
TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com。 ...
ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip
Android系统API提供了FileObserver抽象类(Linux的INotify机制)来监听系统/sdcard中的文件或文件夹,FileObserver类... * SD卡中的目录创建监听器。 * * @author mayingcai */ public class SDCardListener extend
1.用于串口调试,支持常用的RS232波特率,能对端口参数进行设置。 串口调试时候很实用,很棒的工具
Android应用源码开发Demo,主要用于毕业设计学习。
Android应用源码开发Demo,主要用于毕业设计学习。
Android应用源码开发Demo,主要用于毕业设计学习。