Товарищи-разработчики,
Я разрабатываю таймер, который должен сохранять время даже при повороте экрана, но я заметил очень странное поведение со следующим кодом:
function startTimer() {
var setTime = setInterval(function () {
console.log('increasing');
if (isPaused)
clearInterval(setTime);
else {
counter++;
setLocalStorage("counter", counter + 1);
}
}, 1000);
}
function setLocalStorage(key, val) {
if (getLocalStorageValue(key) !== null)
removeLocalStorage(key);
localStorage.setItem(key, val);
}
function getLocalStorageValue(key) {
return localStorage.getItem(key);
}
function removeLocalStorage(key) {
localStorage.removeItem(key);
}
Я обнаружил, что после поворота экрана счетчик все еще увеличивается без остановки, а console.log даже не печатается в консоли. Я предполагаю, что setInterval где-то продолжает работать параллельно, и я не могу найти способ остановить его, потому что я мог бы изменить переменную с isPaused
на true
, но счетчик все еще работает без уважительной причины и останавливается до тех пор, пока Приложение полностью закрыто. Кто-нибудь из вас когда-либо испытывал нечто подобное?
Кроме того, со стороны Android я каждый раз полностью перезагружаю HTML-страницу, тогда на ней ничего не должно храниться, или вы знаете какой-либо способ полной перезагрузки браузера каждый раз?
Кроме того, я добавил этот код в Android, и ничего не происходит:
@Override
protected void onDestroy() {
super.onDestroy();
WebView.pauseTimers();
}
Спасибо за ваш совет или поддержку.