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中的文件及文件夹进行操作


  • 相关阅读:
    python-设计模式:抽象类
    python协程的使用
    python生成器异步使用
    python2和python3的内存使用情况
    python基础
    python对象序列化pickle
    docekr-image的区别和container;docker run和start,create
    airflow 安装配置celery+rabbitmq celery+redis
    Centos7 安装部署 Airflow
    centos7 安装后静态ip的配置
  • 原文地址:https://www.cnblogs.com/vus520/p/2595227.html
Copyright © 2011-2022 走看看