我有一个场景,Android设备通过漫游服务与FTP服务器交换数据。我希望通过在数据传输期间设置WakeLock类型来使OS进入正常的睡眠模式,因为它实际上没有与最终用户的交互。
我正在通过睡眠线程并尝试验证在睡眠模式下将关闭哪些单元以防止数据发送。到目前为止,没有官方文件表明他们。
那么,请你帮我启发一下这些问题:当Android进入睡眠模式时,哪些组件会停止工作,如WIFI,数据漫游?
非常感谢。
答案 0 :(得分:2)
当Android进入睡眠模式时,几乎所有东西都会关闭。仅剩下基本系统应用程序和GSM / CDMA无线电接收文本,呼叫,推送通知等。服务,活动全部关闭,CPU进入低功耗模式。根据用户在wifi设置中选择的内容,wifi连接可能会也可能不会切换到移动数据或完全关闭。
如果您想继续处理,但不需要在屏幕上与用户进行交互,则应获取屏幕和键盘已关闭的PARTIAL_WAKE_LOCK,但CPU会保持打开状态。但是,请记住在完成后释放唤醒锁定,因为PARTIAL_WAKE_LOCK
是四个唤醒锁中唯一一个CPU将继续运行,直到您释放它或您的应用程序被终止。忘记释放唤醒锁定可能会大大消耗用户的电池。
答案 1 :(得分:0)
当用户按下电源关闭按钮(指示灯熄灭),然后手机进入睡眠模式。
睡眠模式意味着CPU将处于睡眠模式,并且仅接受来自无线电接口层和警报的命令。在几分之一秒内,CPU将进入睡眠模式。
当我们只需要关闭CPU和其他东西时,我们使用PARTIAL_WAKE_LOCK,这在您的场景中非常适合。天气此锁定通常用于MP3播放器等应用程序。
由于您希望在此模式下进行数据传输,因此您必须通过允许在此模式下打开某些功能来覆盖PowerManager类中已经给定的方法。