android - FileObserver 不起作用

标签 android fileobserver

在我的 Android 应用程序中,我想检测目录中的事件。这是代码:

String path = Environment.getExternalStorageDirectory()
            + File.separator + "test2";
    Log.d("test", "path is " + path);

    FileObserver fileObserver = new FileObserver(path, FileObserver.ALL_EVENTS) {
        @Override
        public void onEvent(int event, String path) {
            Log.d("test", "event dectect " + event + " " + path);
        }
    };

    fileObserver.startWatching();

我将新文件复制到目录中。但我没有得到任何事件。请告诉我哪里出错了。

最佳答案

您不能使用局部变量来存储您的 FileObserver,它在方法运行后可用于垃圾回收。

Warning: If a FileObserver is garbage collected, it will stop sending events. To ensure you keep receiving events, you must keep a reference to the FileObserver instance from some other live object.

解决办法:保存到字段中。

关于android - FileObserver 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32409638/

相关文章:

android - 如何从另一个类显示警报对话框并在当前 Activity 中处理它(Android)

android - 如何在android中收听新照片?

android - FileObserver 实例正在被垃圾收集

android - 根据变化上传文件的智能方式

android - Fileobserver 的 onevent 方法触发但我如何在删除任何文件之前获取文件

java - Android - ToggleButton 在滚动 ListView 后失去它的状态

Android Studio lint.xml 配置

android - 在 ListView Android 中使用两个图像

android - 如何知道 Android TalkBack 是否处于 Activity 状态?

android - FileObserver 不适用于/proc/net/tcp6