1

我有一个作为递归文件观察器的类。它的作用是为父目录中的所有目录创建一个文件观察器,然后开始观察它们。我知道它可以工作,因为在调试模式下,它会在 logcat 中记录所有文件更改。但是,当我断开与调试器的连接并重新启动应用程序时,它会生成 Started 和 Set Up 日志,但它不会捕获任何文件更改。垃圾收集器是否有可能因为调试器不在现场观看而正在清理?我不认为这是真的,因为运行它的 Intentservice 永远不会消亡。

编辑:我将意图服务更改为不间断服务,同样的事情仍在发生。所以服务不会被破坏。

你怎么看?

谢谢

4

2 回答 2

0

事实证明,即使调试器将 Intent 服务列为仍然存在,但实际上并非如此,并且文件观察器正在最终确定。所以我写了一个线程来欺骗垃圾收集器让对象存在。

于 2012-07-06T22:42:20.583 回答
0

我已经尝试过服务和另一个线程。但没有一个奏效。我认为问题是 FileObserver 是垃圾收集。

警告:如果 FileObserver 被垃圾回收,它将停止发送事件。为确保您继续接收事件,您必须保留对其他活动对象的 FileObserver 实例的引用

http://developer.android.com/reference/android/os/FileObserver.html

于 2014-05-21T14:05:54.077 回答