Angular WPA Как узнать, работает ли приложение в фоновом режиме

#angular #rxjs #wpa

#angular #rxjs #wpa

Вопрос:

Я использую setTimeout для обновления данных из веб-api каждые 10 секунд. Я останавливаю его (очищаю) в onDestroy. Работает отлично 😁

Но, поскольку мое приложение работает на WPA, я понял, что, когда я нажимаю кнопку «Домой» на своем телефоне, приложение все еще выполняет вызовы обновления. Есть ли какой-либо способ (свойство или событие) узнать, когда приложение работает в фоновом режиме, чтобы я мог остановить свой таймер.

Спасибо за потраченное время 😎

Ответ №1:

Наконец-то нашел кое-что: просто использую HostListener для просмотра событий фокусировки / размытия окна, а затем включаю / отключаю мой таймер.

 @HostListener('window:focus', ['$event'])
onFocus(event: FocusEvent): void {
  this.nasTimer.start();
}

@HostListener('window:blur', ['$event'])
onBlur(event: FocusEvent): void {
  this.nasTimer.stop();
}