45

我制作了一个启动服务的应用程序,该服务启动一个计时器,该计时器会在一段时间后触发一个小功能。这在模拟器和摩托罗拉 Droid 1 上运行良好,但当手机进入睡眠模式时,它在 Droid X 上不起作用。我发现,当手机处于睡眠状态时,计时器似乎会暂停。在 Droid 1 或模拟器上似乎没有这样做。我确信解决方法不是太难,所以我不是寻求帮助(一次)我只是想要一个解释,以便更好地理解这一点。

我的问题是“睡眠模式”在 android 系统上究竟做了什么?它会停止什么,它不会停止什么,等等。当然,睡眠模式是指当您按下电源按钮并且屏幕变黑时。到底发生了什么?任何见解都值得赞赏。

4

1 回答 1

64

我相信解决方法不会太难

使用AlarmManager有点棘手。

我的问题是“睡眠模式”在 android 系统上究竟做了什么?

首先,它会关闭 CPU。在此过程中,非必要的无线电(WiFi、GPS)也将被关闭。

它停止了什么,它没有停止什么,等等。

唯一可以指望不停止的是 GSM 或 CDMA 无线电(用于来电、SMS 和 IP 数据包)和AlarmManager.

当然,睡眠模式是指当您按下电源按钮并且屏幕变黑时。

实际上,这本身不是睡眠模式。那就是屏幕关闭。

此后不久,设备将进入睡眠模式,如果没有任何东西通过WakeLock. 但是,不能保证在您按下该按钮并且屏幕关闭后的一毫秒内 CPU 已关闭。

于 2011-02-25T17:02:00.057 回答