2

我有一个场景,android 设备通过漫游服务与 FTP 服务器交换数据。我希望通过在数据传输过程中设置 WakeLock 类型使操作系统进入正确的睡眠模式,因为它确实与最终用户没有交互。

我正在通过睡眠线程并尝试验证哪些单元将在睡眠模式下关闭以防止数据发送。到目前为止,没有官方文档表明它们。

那么,请您帮我解答一下问题:当Android进入睡眠模式时,哪些组件会停止工作,例如WIFI,数据漫游?

非常感谢。

4

2 回答 2

2

当 Android 进入睡眠模式时,几乎所有东西都会关闭。仅保留基本系统应用程序和 GSM/CDMA 无线电来接收短信、电话、推送通知等。服务、活动全部关闭,CPU 进入低功耗模式。根据用户在 wifi 设置中选择的内容,wifi 连接可能会或可能不会切换到移动数据或完全关闭。

如果您想继续处理,但不需要屏幕与用户交互,您应该获取一个PARTIAL_WAKE_LOCK,其中屏幕和键盘关闭,但 CPU 保持打开。但是,请记住在完成后释放PARTIAL_WAKE_LOCK唤醒锁,这是 CPU 将继续运行的四个唤醒锁中唯一一个,直到您释放它或您的应用程序被终止。忘记释放唤醒锁可能会极大地消耗用户的电池电量。

于 2013-02-27T03:18:41.637 回答
0

当用户按下电源关闭按钮(灯熄灭)时,手机进入睡眠模式。

睡眠模式意味着 CPU 将处于睡眠模式,并且只接受来自无线电接口层的命令和警报。CPU 将在几分之一秒内进入睡眠模式。

当我们只需要打开 CPU 并关闭其他东西时,我们会使用 PARTIAL_WAKE_LOCK ,它非常适合您的场景。天气这个锁通常用于 mp3 播放器等应用程序。

由于您希望在此模式下进行数据传输,因此您必须通过允许在此模式下打开某些功能来覆盖 PowerManager 类中已经给定的方法。

于 2014-06-30T05:26:09.217 回答