Android睡眠/待机模式

Bra*_*don 44 android standby sleep-mode

我创建了一个启动服务的应用程序,它启动一个计时器,在一段时间后触发一个小函数.这在模拟器和Motorola Droid 1上运行得很好,但是当手机进入睡眠模式时,它在Droid X上不起作用.我发现的是,当手机处于睡眠状态时,计时器似乎会暂停.它似乎没有在Droid 1或模拟器上执行此操作.我确定解决方法并不太难,所以我不是要求帮助(一次)我只想要一个解释,以便更好地理解这一点.

我的问题是什么"睡眠模式" 在Android系统上了什么?什么是停止,什么不停止,等等.睡眠模式我的意思是,当你按下电源按钮,屏幕变黑.究竟发生了什么?任何见解都表示赞赏.

Com*_*are 62

我确信解决方法并不太难

使用AlarmManager有点棘手.

我的问题是什么"睡眠模式"在Android系统上做了什么?

它主要关闭CPU.一路上,非必要的无线电(WiFi,GPS)也将被关闭.

什么停止,什么不停止,等等.

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

睡眠模式我的意思是,当你按下电源按钮并且屏幕变黑时.

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

此后不久,该设备将进入睡眠模式,如果没有任何东西让它保持清醒状态WakeLock.但是,无法保证在按下该按钮的一毫秒内,屏幕关闭,CPU关闭.

  • @Erdal:恕我直言,除了当用户正在聊天时,没有理由让"聊天应用程序"拥有正在运行的服务,更不用说在手机关闭时继续服务了.而且,鉴于用户对开发人员做出这类事情的大声抱怨,我怀疑最多你希望这是一种可选的选择加入功能.话虽这么说,除了通过"WakeLock"和"WifiLock"之外,你想要的东西是不可能的.有关此主题的进一步讨论,请打开您自己的问题. (6认同)
  • 有什么文件(除了阅读实际的源代码)关于什么时候CPU会关闭,一般情况下应该使用唤醒锁?特别是对于需要通过网络发送保持活动的服务. (3认同)
  • @Erdal:Android不是RTOS - 没有"确切".如果您需要在套接字上发送数据包,则需要WakeLock,如果连接在WiFi上,则需要WifiLock.并且,您希望尽可能少地运行此毫秒. (3认同)
  • 不知怎的,我知道你会回答这个问题.哈.这次真是万分感谢.那么,它甚至会在睡眠模式下停止服务? (2认同)
  • @Brandon:是的.由于CPU断电,所有进程都冻结到位. (2认同)