`
googlelee
  • 浏览: 116107 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

监听SD卡操作 --转载

阅读更多
比如,我要监听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监听器代码--监听servlet

    Web监听器是Java Web应用程序中的一个重要组件,它们允许开发者在特定事件发生时执行代码,比如在Servlet上下文初始化或销毁时、用户会话创建或结束时等。在Java Web开发中,监听器通过实现特定接口并配置在`web.xml...

    网络监听技术文档--从入门到精通:网络监听技术全解

    《网络监听技术文档--从入门到精通:网络监听技术全解》 网络监听技术是网络管理及安全领域的重要工具,它能帮助管理员检测网络流量、定位并解决网络问题,但同时也可能引发信息安全风险。网络监听涉及到对网络数据...

    TNS-12541: TNS: 无监听程序 TNS-12560

    TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序 文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com。 ...

    第3章:网络监听及防御技术-2021.ppt

    第3章:网络监听及防御技术-2021.ppt

    Android应用源码之3G和wifi的切换监听-IT计算机-毕业设计.zip

    在Android应用开发中,理解和掌握网络状态监听是至关重要的,特别是在设计涉及网络通信的应用时。这份"Android应用源码之3G和WiFi的切换监听"的毕业设计项目,旨在教授开发者如何在Android平台上监听和处理网络连接...

    Soap监听工具(Membrane-monitor)(part01)

    Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...

    Soap监听工具(Membrane-monitor)(2)

    Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...

    Soap监听工具(Membrane-monitor)(1)

    Membrane-monitor是一款好用的Soap监听工具,它既可以是eclipse插件,也是应用程序,本文发布的是win32下的应用程序。 使用方法: (1)运行Membrane-monitor,选择Membrane->Add Rule; (2)选中Simple Forwarding...

    Soap监听工具(Membrane-monitor)(3)

    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 ContentProvider远程数据操作-带监听(2.0).zip

    监听listview垂直滚动距离

    在Android开发中,ListView是一种常用的控件,用于展示大量数据并支持滚动操作。"监听listview垂直滚动距离"是Android开发中的一个常见需求,它可以帮助开发者实现诸如无限滚动加载、顶部悬浮按钮(如“返回顶部”)...

    第4章事件监听器--java.ppt

    总的来说,事件监听是Java GUI编程的核心部分,它使得程序能够响应用户的操作,增强交互性和用户体验。通过实现不同的事件监听器接口并注册到事件源上,开发者可以控制应用程序在特定事件发生时的行为。

    配套开发板实验手册:SD卡-SPI.pdf

    在嵌入式系统应用中,SD卡作为常用的存储设备,广泛用于各种便携设备。本文主要针对STM32微控制器,探讨如何通过硬件SPI接口与SD卡进行通信。STM32硬件SPI的配置与FLASH的SPI相同,只需对片选信号进行适当设定。对于...

    easyui的eas-text绑定输入时监听值变化 提供两种方式,亲测可用

    自己花了 一晚上搞出来的,没有找到合适的,最后自己根据观看博客的总结,做了此demo 下载运行即可

    oracle 静默安装 netca.rsp 监听模板文件

    oracle 12c 静默安装模板文件,监听文件netca.rsp ,修改过的可直接使用 与博客中的对应

    Android应用源码之判断双SD卡_CheckDoubleSDCard-IT计算机-毕业设计.zip

    在Android应用开发中,有时我们需要判断设备是否存在两个外部存储卡,即双SD卡。这个"Android应用源码之判断双SD卡_CheckDoubleSDCard"项目就是针对这一需求的一个实例。这个源码Demo可以帮助开发者理解如何在...

    Android 判断双SD卡_CheckDoubleSDCard-IT计算机-毕业设计.zip

    在Android系统中,判断双SD卡的存在是移动设备应用程序中常见的需求,特别是在处理大量数据存储或备份场景下。本项目“Android 判断双SD卡_CheckDoubleSDCard”提供了一个源码示例,帮助开发者理解如何在Android应用...

    最好用的串口监听工具device-monitoring-studio.7.26

    最好用的串口监听工具,包括最需要的 码也是有的。非常好的一个软件。 device-monitoring-studio.7.26

    android的四种监听方式

    在Android开发中,监听是实现应用交互和响应用户操作的关键技术。本文将深入探讨Android的四种主要监听方式,帮助开发者更好地理解和运用这些机制,提升应用的用户体验。 1. **点击事件监听**: - `...

Global site tag (gtag.js) - Google Analytics