首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用android fileObserver onEvent

未调用android fileObserver onEvent
EN

Stack Overflow用户
提问于 2015-05-28 01:19:59
回答 4查看 4.4K关注 0票数 2

我正在尝试确定文件被修改的时间。目前我有一个类文件观察器类,它包含

代码语言:javascript
复制
public class fileObserver extends FileObserver {
    public String absolutePath;
    public fileObserver(String path) {
        super(path, FileObserver.ALL_EVENTS);
        absolutePath = path;
    }

    @Override
    public void onEvent(int event, String path) {
        if (path == null) {
            return;
        }
        if (event == FileObserver.MODIFY) {
            Log.d("change","changed");
        }
    }
}

在我的主要活动中我有

代码语言:javascript
复制
fileObserver test = new fileObserver(fullpathnamehere);
test.startWatching();

fullpathnamehere这里是我试图观察的文件的文件路径。我检查过了,文件路径是有效的。有人能告诉我我哪里做错了吗?

EN

回答 4

Stack Overflow用户

发布于 2015-05-28 01:34:59

未调用方法onEvent(),因为路径不正确:

代码语言:javascript
复制
event fileObserver test = new fileObserver(fullpathnamenere);
test.startWatching();

检查您的文件路径是否正确!

尝试使用:

代码语言:javascript
复制
String fullpathnamenere = Environment.getExternalStorageDirectory().getPath() + "/stuff.txt";

更新:

我发现(感谢Mark Murphy先生) FileObserver不是递归的!

检查此

我建议使用RecursiveFileObserver

票数 1
EN

Stack Overflow用户

发布于 2015-05-28 01:37:51

像这样更改您的onEvent()方法...

代码语言:javascript
复制
 @Override
    public void onEvent(int event, String path) {
        if (path == null) {
            return;
        }
        if ((FileObserver.MODIFY & event)!=0&&path.equals("file_name")) {
            Log.d("change","changed");
        }
    }

在活动中

代码语言:javascript
复制
fileObserver test = new fileObserver(parent_dir_path_of_the_file);
test.startWatching();
票数 0
EN

Stack Overflow用户

发布于 2017-09-26 20:53:33

你必须检查的东西:

  1. 检查文件路径。
  2. 检查清单文件中的文件权限。
  3. 如果其版本高于6.0,则必须动态添加权限。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30489189

复制
相关文章

相似问题

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