gpt4 book ai didi

android - WebView 在 WebViewCoreThread 后台使用 30%

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:50 24 4
gpt4 key购买 nike

我有一个带有 WebView 的应用程序。当 Activity 暂停 (onPause) 时,我调用适当的 webview.onPause 和 webview.stopTimers,它们与 Activity.onResume 方法中的 webview.onResume 和 webview.resumeTimers 保持平衡。

现在,当我在 webview 中加载 www.google.com,然后将应用程序置于后台时,它仍会使用高达 30% 的 CPU!这太过分了。

我执行了方法分析,发现 WebViewCoreThread 每 100 毫秒使用 MessageQueue.nativePollOnce -> WebViewCore.nativeSetScrollOffset 执行一些操作,这导致了 webview 的重绘(在 bakground 中)(WebViewCore.nativeDrawContent)。

这是一般 WebView 的问题还是我的应用程序的问题?

最佳答案

Android 有很多关于 webview 的问题,并且有一些关于特定版本的已知问题,你可以在这里看到:

https://code.google.com/p/android/issues/detail?id=9375

我遇到了一些类似的问题,最后销毁 webview 并重新创建它们的成本更低,因为所有 CPU 消耗都会耗尽用户的电池。

如果您想保留用户的电量,并避免卸载,我建议您这样做,Android 团队似乎正在努力改进 Webview,让我们看看。

[更新,在用户:@CamHart 发现一个损坏的链接后]

我在 Stackoverflow 中发现了一个有多个回复的类似问题: Memory leak in WebView我认为很多人混淆了内存泄漏和 CPU 泄漏这个术语,根本原因可能是一样的,Webview 没有被破坏,如果你有一个不断运行 JavaScript 的 WebView(例如广告),CPU 消耗不会即使在退出应用程序后也会下降,如果 WebView 被正确销毁,内存可能会保持不变甚至下降但不会到达应有的位置。

关于android - WebView 在 WebViewCoreThread 后台使用 30%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645437/

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