1

我的 Android FileObserver 有问题。

我有一个后台服务正在运行(返回 START_STICKY),它引用了两个 FileObserver。据我所知,在设备设置为睡眠模式之前一切正常,这将停止服务。

  1. 有谁知道当设备进入睡眠模式时 Service/FileObserver 到底发生了什么?

  2. 服务是否可以在冻结之前得到通知,以便我可以保存观察文件夹的文件列表并在设备再次唤醒时将其与新列表进行比较?

我不想使用唤醒锁,因为它会影响电池寿命。

  1. 当我重新打开屏幕时,在我的服务设置为睡眠状态时发生的文件夹更改是否会触发 FileObserver 事件?

那不能真正测试它,因为 USB 调试使设备保持唤醒状态。

谢谢你的帮助!

4

1 回答 1

1

一切正常,直到设备设置为睡眠模式,这将停止服务,据我所知

不,它会停止 CPU。

有谁知道当设备进入睡眠模式时 Service/FileObserver 到底发生了什么?

CPU 停止。停止的 CPU 不会执行指令。这让人想起将开发计算机置于挂起模式。

(细节要复杂得多,但通常与 SDK 级别无关,恕我直言)

服务是否可以在冻结之前得到通知,以便我可以保存观察文件夹的文件列表并在设备再次唤醒时将其与新列表进行比较?

不。

当我重新打开屏幕时,在我的服务设置为睡眠状态时发生的文件夹更改是否会触发 FileObserver 事件?

我没试过。

那不能真正测试它,因为 USB 调试使设备保持唤醒状态。

然后拔下 USB 电缆。使用Log语句记录您希望监控的结果。测试结束后插入 USB 电缆以检查 LogCat 并查看您的日志。

一般来说,您的整体解决方案(持续运行的服务)是对用户不利的。当用户使用任务杀手和强制停止按钮攻击您时,请不要抱怨。

于 2013-06-08T11:40:35.247 回答