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中的檔及資料夾進行操作






原文連結:HTTP://www.cnblogs.com/vus520/archive/2012/07/17/2595227.html
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()