android.os下的FileObserver类是一个用于监听文件访问、创建、修改、删除、移动等操作的监听器,但是该监听只针对监听的那个文件目录下的一级子文件起作用,
而对它子目录下的文件目录则不能够实现。如下示例:
import com.example.androidemail.R;
import com.example.androidemail.R.layout;
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.activity_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);
}
public SDCardFileObserver(String path) {
super(path);
}
@Override
public void onEvent(int event, String path) {
final int action = event & FileObserver.ALL_EVENTS;
switch (action) {
case