首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileObserver修改不起作用

FileObserver修改不起作用
EN

Stack Overflow用户
提问于 2013-05-31 21:24:34
回答 3查看 962关注 0票数 5

这是我的代码:

代码语言:javascript
复制
public class SyncNotifyService extends Service {
    private final static String TAG = "FileService";
    SDCardListener fileObserver = null;


@Override
public IBinder onBind(Intent intent) {
    return null;
}

public File getCacheDir() {
    if (!StorageUtil.isExternalStorageAvailable()) {
        return null;
    }

    File dir = new File(Environment.getExternalStorageDirectory(), "Cache");
    return dir;
}

@Override
public void onCreate() {
    super.onCreate();
    Log.d(TAG, "onCreate");

    fileObserver = new SDCardListener(FileCache.getCacheDir().getPath(), FileObserver.MODIFY);
    fileObserver.startWatching();
}

class SDCardListener extends FileObserver {
    public SDCardListener(String path, int mask) {
        super(path, mask);
    }

    @Override
    public void onEvent(int event, String path) {
        final int action = event & FileObserver.ALL_EVENTS;
        switch (action) {
        case FileObserver.MODIFY:
            Log.d(TAG, "event: MODIFY");
            break;
        }
    }
}

}

嗨,我用这个代码来通知一个dir。但是我发现它从来没有使用FileObserver.MODIFY参数调用过onEvent,有人知道如何写正确的代码吗?我的android版本是4.1.1

EN

回答 3

Stack Overflow用户

发布于 2013-06-25 23:17:44

也许您编写onEvent的方式不正确,请使用

代码语言:javascript
复制
if (!event.equals(MODIFY)) { return;} 

//the code you want 
if (path.equals(blah blah blah)) {
//some code.. 
}

这是我在FileObserver中使用的方式,尝试一下...

票数 0
EN

Stack Overflow用户

发布于 2014-01-10 04:21:41

创建FileObserver时,该路径对于包含您正在观察的文件的目录应该是绝对路径:

代码语言:javascript
复制
fileObserver = new SDCardListener(FileCache.getCacheDir().getAbsolutePath(), FileObserver.MODIFY);

另外,请更改以下内容:

代码语言:javascript
复制
 public void onEvent(int event, String path) {

    switch (action) {
    case FileObserver.MODIFY:
        Log.d(TAG, "event: MODIFY");
        break;
    }
}

如果onEvent未被触发,请尝试更改FileObserver的初始化方式,使其侦听ALL_EVENTS并打印触发的事件。然后你就可以知道为什么MODIFY不是触发器了。

票数 0
EN

Stack Overflow用户

发布于 2015-05-28 02:17:00

根本不是递归的!

请检查以下内容:

我建议使用RecursiveFileObserver类:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16858377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档