WebView использует 30% в фоновом режиме в WebViewCoreThread - PullRequest
9 голосов
/ 04 октября 2011

У меня есть приложение с WebView.Когда действие приостанавливается (onPause), я вызываю соответствующие webview.onPause и webview.stopTimers, они уравновешиваются с помощью webview.onResume и webview.resumeTimers в методе Activity.onResume.

Теперь, когда я загружаю www.google.com в webview, а затем поместите приложение в фоновый режим, оно все равно будет использовать до 30% процессорного времени!Это слишком много.

Я выполнил профилирование метода и увидел, что WebViewCoreThread делал что-то каждые 100 мс с MessageQueue.nativePollOnce -> WebViewCore.nativeSetScrollOffset, это вызывало перерисовку веб-просмотра (в то время как в bakground) (WebViewCore.nativeDrawContent).

Это проблема с WebView в целом или проблема в моем приложении?

1 Ответ

0 голосов
/ 14 июня 2015

Android имеет много проблем с веб-обзорами, и есть некоторые известные проблемы с конкретными версиями, как вы можете видеть здесь:

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

Я столкнулся с некоторыми похожими проблемами, и в конце концов дешевле уничтожить веб-просмотры и воссоздать их заново, потому что все потребление ресурсов процессора разряжает батарею пользователя.

Я нашел хороший пост, который может быть полезен для вас: http://garena.github.io/blog/2014/07/18/android-prevent-webview-from-memory-leak/

Если вы хотите сохранить батарею своих пользователей и избежать деинсталляций, я предлагаю сделать это, похоже, команда Android усердно работает над улучшением веб-просмотров, давайте посмотрим.

...