gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:47 26 4
gpt4 key购买 nike

我需要监控文件夹中的所有文件,当文件打开时(FileObserver.OPEN)我想执行一个方法。问题是有时,FileObserver 实例被 GC 收集,我试过这个:

    final MyFileObserver fo = new MyFileObserver("/mnt/sdcard/Musicas");
threadFileObserver = new Runnable() {
@Override
public void run() {
fo.startWatching();
}
};
t = new Thread(threadFileObserver);
t.run();

但是正在收集中。问题是,对于不收集 FileObserver 实例的最佳解决方案是什么?

谢谢!!!

最佳答案

我猜 startWatching() 方法会立即返回,您的 Thread 完成运行,然后您的方法返回。此时,作为局部变量的 FileObserver 从任何地方都不可见。您的线程已完成运行,没有对它的引用。两者都是垃圾收集的。将 FileObserver 定义为静态变量或未被垃圾收集的字段中的字段,而不是方法中的局部变量。

关于android - FileObserver 实例正在被垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com