выполняется каждый раз, когда приложение запускается.
Какие действия вы выполняли при возникновении проблемы?
Нажали кнопку для запуска приложения.
Чего вы ожидали получить в результате этих действий? Что действительно получили?
Наши основные программы являются ServiceExtensionAbility.
Сценарий 1:
У нас есть логика отображения окна впереди на 100 секунд перед тем как скрыть его автоматически. Код примерно такой:
this.TimerTaskId = setTimeout(() => {
...
log.info('Окно было показано более 100 секунд, скрываю его');
this.window.hide();
}, 1000 * 100);
При каждом скрытии страницы мы очищаем таймер:
onPageHide() {
if (this.TimerTaskId) {
clearTimeout(this.TimerTaskId);
this.TimerTaskId = undefined;
}
}
Однако часто видим сообщение "Окно было показано более 100 секунд, скрываю его" сразу после запуска приложения и выполнение this.window.hide()
.
Сценарий 2:
У нас есть логика самоубийства приложения через 300 секунд, если оно находится в фоновом режиме. Код примерно такой:
onPageHide() {
this.killTimerTaskId = setTimeout(() => {
...
this.context?.terminateSelf().then(() => {
logger.info("Успешное завершение работы");
});
}, 1000 * 300);
}
При каждом появлении страницы мы очищаем этот таймер:
onPageShow() {
if (this.killTimerTaskId) {
clearTimeout(this.killTimerTaskId);
this.killTimerTaskId = undefined;
}
}
Также иногда видим сообщение "Успешное завершение работы" сразу после запуска приложения и выполнение самоубийства.3. Пожалуйста, приложите ссылку на проблемную страницу, скриншоты, устройства и IDE логи.
Ответ:
14:15:50.869 Временная задача на 300 секунд не была выполнена.
14:22:33:935 После запуска приложения было выполнено самоубийство через 300 секунд, хотя прошло уже около семи минут.
Вход Перед тем как оставить комментарий