gpt4 book ai didi

android - 屏幕开启时,Wi-Fi 或 CPU 可以进入休眠状态吗?

转载 作者:IT老高 更新时间:2023-10-28 23:07:03 32 4
gpt4 key购买 nike

Android 上有 WakeLockWifiLock -- 但如果我的屏幕从不关闭,我需要这些吗?

我正在使用持久连接(例如 WebSockets)数十分钟甚至数小时。我的屏幕始终亮着是否足以防止设备丢失这些连接(如果我们假设连接仍然可用且服务器正常)?

为了让屏幕保持打开状态,我使用标准方式:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

文档是怎么说的:

To avoid draining the battery, an Android device that is left idle quickly falls asleep.

( https://developer.android.com/training/scheduling/wakelock.html )

Normally the Wi-Fi radio may turn off when the user has not used the device in a while.

( http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html )

这是否意味着...

当用户长时间不与设备交互时(即使屏幕仍然亮着),Wi-Fi radio 或 CPU 可能会进入休眠模式或关闭?

而且,更具体地说,当仍然有一个保持屏幕的 Activity 时,后台任务(例如 IntentService)的 Wi-Fi 或移动数据连接可能会进入休眠状态开吗?

最佳答案

Can Wi-Fi or the CPU go to sleep when screen is on?

没有。

There are WakeLocks and WifiLocks on Android -- but do I need these if my screen is never turning off?

我不太清楚您的屏幕是如何从不关闭的。归根结底,AFAIK,总是涉及 WakeLock 是否需要 WakeLock 或者该 WakeLock 是否由框架类管理(例如,android:keepScreenOn)或操作系统(例如,保持屏幕打开的设置选项),取决于您在做什么。

我从未见过 Android 设备在屏幕打开时(而不是在锁屏时)关闭 WiFi。不排除在某些厂商的极端省电模式下,由于电池电量不足导致 WiFi 掉电的可能性。

Will my screen being always on be sufficient to prevent the device from losing those connections (if we assume that the connection remains available and the server is fine)?

我会把它更多地表述为“保持屏幕打开会有所帮助”。或者,更好的是,让设备进入休眠模式通常会断开您的 WiFi 连接。

To keep the screen on, I use the standard way: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

这意味着您正在使用 WakeLock。碰巧它是为你管理的,因为你不能搞砸,你不需要 WAKE_LOCK 权限。

the Wi-Fi radio or the CPU may go to sleep mode or turn off when the user does not interact with the device for a longer time (even if the screen is still on)?

对于普通设备,没有。我不能排除某些制造商在做某种可能具有这种行为的电子墨水产品。

And, more specifically, may a background task's (e.g. IntentService) Wi-Fi or mobile data connection go to sleep when there is still an Activity that keeps the screen on?

不应该。特别是,移动数据连接从不进入休眠状态。


说了这么多,除非这是一个完全受控的环境,否则你所做的事情的可靠性将会很糟糕。你做了很多假设:

  • 某种永久电源

  • 没有人会弄乱设备以将您的 Activity 移至后台或退出按钮

  • 没有人干扰 WiFi 网络,无论是一般情况下还是对设备上的设置大惊小怪(例如,将其置于飞行模式)

  • 等等。

如果这是某种工业过程监控器或信息亭内设备,那么您完美控制这些东西的几率是不错的,但不是很好。你得到的远不止这些,而且这些事情的可能性很快就会消失。


Do you have any references?

在一个理想的世界里,所有这一切都会被完美地记录下来,所有人之间都会和平相处,而海莉·阿特维尔会认为我是一个正派的人。

这不是一个理想的世界。

这些东西不仅在很大程度上没有记录,而且实际上取决于设备制造商。这就是为什么如果这不是一个非常受控的环境,虽然欢迎你尝试获得这种行为,但现实世界非常困惑,你不应该假设你可以保持连接打开无限期。

关于android - 屏幕开启时,Wi-Fi 或 CPU 可以进入休眠状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27417673/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com