比如,我要监听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监听器是Java Web应用程序中的一个重要组件,它们允许开发者在特定事件发生时执行代码,比如在Servlet上下文初始化或销毁时、用户会话创建或结束时等。在Java Web开发中,监听器通过实现特定接口并配置在`web.xml...
《网络监听技术文档--从入门到精通:网络监听技术全解》 网络监听技术是网络管理及安全领域的重要工具,它能帮助管理员检测网络流量、定位并解决网络问题,但同时也可能引发信息安全风险。网络监听涉及到对网络数据...
TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com。 ...
第3章:网络监听及防御技术-2021.ppt
在Android应用开发中,理解和掌握网络状态监听是至关重要的,特别是在设计涉及网络通信的应用时。这份"Android应用源码之3G和WiFi的切换监听"的毕业设计项目,旨在教授开发者如何在Android平台上监听和处理网络连接...
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...
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...
ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip ContentProvider远程数据操作-带监听(2.0).zip
在Android开发中,ListView是一种常用的控件,用于展示大量数据并支持滚动操作。"监听listview垂直滚动距离"是Android开发中的一个常见需求,它可以帮助开发者实现诸如无限滚动加载、顶部悬浮按钮(如“返回顶部”)...
总的来说,事件监听是Java GUI编程的核心部分,它使得程序能够响应用户的操作,增强交互性和用户体验。通过实现不同的事件监听器接口并注册到事件源上,开发者可以控制应用程序在特定事件发生时的行为。
在嵌入式系统应用中,SD卡作为常用的存储设备,广泛用于各种便携设备。本文主要针对STM32微控制器,探讨如何通过硬件SPI接口与SD卡进行通信。STM32硬件SPI的配置与FLASH的SPI相同,只需对片选信号进行适当设定。对于...
在Android系统中,SD卡(Secure Digital Card)主要用于扩展设备的存储空间,用户可以将照片、音乐、视频等数据存储在SD卡上。本篇主要介绍如何在Android应用中进行SD卡的读写操作,以及如何使用ExpandableListView...
自己花了 一晚上搞出来的,没有找到合适的,最后自己根据观看博客的总结,做了此demo 下载运行即可
oracle 12c 静默安装模板文件,监听文件netca.rsp ,修改过的可直接使用 与博客中的对应
在Android应用开发中,有时我们需要判断设备是否存在两个外部存储卡,即双SD卡。这个"Android应用源码之判断双SD卡_CheckDoubleSDCard"项目就是针对这一需求的一个实例。这个源码Demo可以帮助开发者理解如何在...
在Android系统中,判断双SD卡的存在是移动设备应用程序中常见的需求,特别是在处理大量数据存储或备份场景下。本项目“Android 判断双SD卡_CheckDoubleSDCard”提供了一个源码示例,帮助开发者理解如何在Android应用...
最好用的串口监听工具,包括最需要的 码也是有的。非常好的一个软件。 device-monitoring-studio.7.26