Webview行为唤醒锁android

Posted

技术标签:

【中文标题】Webview行为唤醒锁android【英文标题】:Webview behaviour wakelock android 【发布时间】:2015-10-08 14:03:36 【问题描述】:

WebView 如何与唤醒锁一起使用?

Flag Value               CPU   Screen   Keyboard
PARTIAL_WAKE_LOCK        On*    Off      Off
SCREEN_DIM_WAKE_LOCK     On     Dim      Off
SCREEN_BRIGHT_WAKE_LOCK  On    Bright    Off
FULL_WAKE_LOCK           On    Bright   Bright

*如果你持有部分唤醒锁,CPU 将继续运行,而不管任何显示超时或屏幕状态,甚至 用户按下电源按钮后。在所有其他唤醒锁中, CPU 将运行,但用户仍然可以使用 电源按钮。

此外,您可以再添加两个标志,它们仅影响屏幕的行为。当与 PARTIAL_WAKE_LOCK 结合使用时,这些标志无效。

这两个标志:

ACQUIRE_CAUSES_WAKEUP 普通唤醒锁实际上不会打开照明。相反,它们会导致照明保持一次 它打开(例如从用户活动)。此标志将强制屏幕 和/或键盘在获取 WakeLock 时立即打开。 一个典型的用途是通知对 用户立即查看。

ON_AFTER_RELEASE 如果设置了这个标志,用户活动计时器将在 WakeLock 释放时重置,从而导致照明 停留时间长一点。这可以用来减少闪烁,如果你 在唤醒锁定条件之间循环。

场景:应用程序运行一个 webview 需要等待 onPageFinished() 进行处理(是的,我需要使用唤醒锁,这只是最简单的场景)

【问题讨论】:

【参考方案1】:

WebView 本身不会获取唤醒锁,这完全取决于您应用的代码。

【讨论】:

这不是我问的。 对不起,那我不确定你的问题是什么。您是在问,在您的应用获得唤醒锁后,WebView 是否会工作? 我询问当唤醒锁资源在应用程序上处于活动状态时,webview 的行为如何。如果我使用 PARTIAL_WAKE_LOCK,webview 会正确加载(正常加载,即使屏幕关闭)?如果我使用SCREEN_DIM_WAKE_LOCK,webview 会正常加载内容吗?等等……这就是我想知道的。 我会说 WebView 将像任何其他框架组件一样工作。由于 CPU 将继续运行,这意味着 WebView 将能够进行任何加载和页面代码执行。不需要打开屏幕来布置网页——WebView 只需要知道它的大小。

以上是关于Webview行为唤醒锁android的主要内容,如果未能解决你的问题,请参考以下文章

Android WebView中的H5支付实践

每次使用标签创建新的 android 唤醒锁都会返回相同的唤醒锁吗?

唤醒锁没有打开屏幕?帮助?

在 android 应用程序中访问唤醒锁统计信息

Android 唤醒锁强制关闭

在 Android 1.5 服务中使用唤醒锁