【发布时间】:2011-11-02 12:55:14
【问题描述】:
我创建了一个托管 ContentObserver (C) 的服务 (S)。 C 跟踪一些数据并记录对数据库所做的更改 (D)。
S 还有一个计时器,它可以定时将 D 的内容转储到文件中。
我的服务在我的手机上运行,一段时间内一切正常(几个小时左右)。然后突然停止记录对数据所做的更改并停止转储到文件。 我尝试更改数据(在 C 上引发 onChange)并在手机中四处浏览以保持设备处于唤醒状态,但什么也没发生 - 服务仍然处于非活动状态。 S 仍在运行,当我连接到我的笔记本电脑时,我在日志中看不到任何错误。
我的猜测是服务正在休眠(没有 CPU 片)。我读过一些关于唤醒锁的文章,但我不想强迫手机一直处于唤醒状态。 ()。 另一种方法是创建一个重复警报,每 T 分钟执行一次 C 的工作(轮询)。 我更喜欢 ContentObservers 的想法,因为用户可以在更新之间更改(尤其是删除)数据。使用 ContentObserver,我将获得所有更改,而不仅仅是定时间隔的快照。
关于如何定期唤醒我的服务有什么想法吗?
最好的问候 弗雷德里克
【问题讨论】:
标签: android service wakelock contentobserver