Я решил проверить, жив ли телефонная книга WebView, когда приложение находится в фоновом режиме.
function test2(x){
$('<div></div>', {text: x.cmd}).appendTo($('#list'));
}
$(function(){test2({cmd:"start"});});
function cb_pause(){test2({cmd:"pause"});}
function cb_resume(){ test2({cmd:"resume"});}
function tick(){test2({cmd:"timer" + timer});timer++;setTimeout(tick, 1000);}
document.addEventListener("pause", cb_pause, false);
document.addEventListener("resume", cb_resume, false);
tick();
Он печатает pause
и resume
на onPause
и onResume
.
и печатать timer0
, timer1
и т.д. каждую секунду.
Это была печать, даже когда я оставил приложение и начал играть в игру.
Я знаю, что могу и должен остановить таймер в onPause
, но все же. Это выглядит неправильно. Я ожидал, что android заморозит WebView.
Я знаю, что фоновый поток не остановится, если в фоновом приложении пока он не будет выгружен.
Итак, вопрос: есть ли способ заморозить/приостановить/выгрузить webview на onPause
и разморозить/возобновить/загрузить на onResume
Когда я говорю load, я имею в виду, что он должен находиться в том же состоянии, когда пользователь оставил приложение.
Когда я говорю "заморозить", я имею в виду, что мой код будет приостановлен, даже когда он будет продолжать звонить setTimeout
Думаю, я ожидаю, что Android будет вести себя как iOS.