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


 

你可能感兴趣的:(observer)