zoukankan      html  css  js  c++  java
  • Android使用FileObserver对sdcard文件或文件夹监控

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

    package com.orgcent.filelistener;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Environment;
    import android.os.FileObserver;
     
    public class AndroidFileListenerActivity extends Activity {
    private FileObserver mFileObserver;
     
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     
    if(null == mFileObserver) {
    mFileObserver = new SDCardFileObserver(Environment.getExternalStorageDirectory().getPath());
    mFileObserver.startWatching(); //开始监听
    }
    }
     
    public void onDestory() {
    if(null != mFileObserver) mFileObserver.stopWatching(); //停止监听
    }
     
    static class SDCardFileObserver extends FileObserver {
    //mask:指定要监听的事件类型,默认为FileObserver.ALL_EVENTS
    public SDCardFileObserver(String path, int mask) {
    super(path, mask);
    }

    注意事项:
    1、防止FileObserver类的对象被垃圾回收,否则将不能收到文件及文件夹的监听事件了。
    2、程序运行在Android模拟器中,使用Eclipse的DDMS中的File视图来对Android模拟器的sdcard中的文件及文件夹进行操作


  • 相关阅读:
    递归神经网络(Recurrent Neural Networks,RNN)
    二叉树算法汇总
    (三)spark集群DHCP IP变化后的处理
    多层感知机及其BP算法(Multi-Layer Perception)
    算法随笔
    opencv::Shi-Tomasi角点检测
    opencv::Harris角点检测
    boost::asio::io_service::定时器任务队列
    opencv::基于距离变换与分水岭的图像分割
    opencv::点多边形测试
  • 原文地址:https://www.cnblogs.com/vus520/p/2595227.html
Copyright © 2011-2022 走看看