今天在排查Webview耗电问题时发现, 在WebView放到后台之后, 应该调用WebView.pauseTimers,
在WebView回到前台时再调用WebView.resumeTimers
否则在后台WebViewCoreThread线程会无法停止, 进程会持续占用cpu, 导致耗电。
否则在后台WebViewCoreThread线程会无法停止, 进程会持续占用cpu, 导致耗电。
下图是浏览器未加这个接口时按home键放到后台并锁屏之后的线程和cup占用情况,WebViewCoreThread未停止,UI进程持续占用cpu
注意:
由于pauseTimers和resumeTimers是全局生效的, 并不只影响单个WebView, resumeTimers注意不要遗漏, 否则遗漏的WebView会出现异常. 最好在重写的WebView
基类中修改
本文讨论了在Webview应用中如何通过调用pauseTimers和resumeTimers来避免后台进程持续占用CPU导致的耗电问题。通过全局生效的pauseTimers和resumeTimers接口,可以有效控制WebViewCoreThread线程的运行状态,避免应用在后台运行时的电量消耗。
616

被折叠的 条评论
为什么被折叠?



