我的Android FileObserver出了问题。
我有一个后台服务正在运行(返回START_STICKY),它引用了两个FileObservers。 一切正常,直到设备设置为睡眠模式,这将停止服务,据我所知。
当设备进入睡眠模式时,是否有人知道Service / FileObserver究竟发生了什么?
服务可以在冻结之前得到通知,这样我就可以保存被观察文件夹的文件列表,并在设备再次被唤醒时将其与新列表进行比较吗?
我不想使用唤醒锁,因为它对电池寿命有影响。
这无法真正测试它,因为USB调试可以让设备保持清醒状态。
感谢您的帮助!
答案 0 :(得分:1)
一切正常,直到设备设置为睡眠模式,这将停止服务,据我所知
不,它会停止CPU。
当设备进入睡眠模式时,是否有人知道Service / FileObserver究竟发生了什么?
CPU已停止。停止的CPU不会执行指令。这让人想起将开发计算机置于挂起模式。
(细节要复杂得多,但通常与SDK级别无关,恕我直言)
服务是否可以在冻结前得到通知,这样我就可以保存被观察文件夹的文件列表,并在设备再次被唤醒时将其与新列表进行比较?
没有
一旦我重新打开屏幕,我的服务设置为休眠状态时发生的文件夹更改是否会触发FileObserver事件?
我没试过。
这无法真正测试它,因为USB调试可以让设备保持清醒状态。
然后拔下USB电缆。使用Log
语句记录您要监视的结果。在测试期后插入USB电缆,检查LogCat并查看日志。
一般来说,您的整体解决方案(持续运行的服务)是用户敌对的。当用户使用任务杀手和强制停止按钮攻击你时,请不要抱怨。