Angular WPA如何知道应用程序是否在后台

时间:2019-03-22 19:38:13

标签: angular rxjs wpa

我每10秒使用SetTimeout从Web API刷新数据。我在onDestroy中将其停止(干净)。完美地工作

但是,由于我的应用程序是WPA,所以我意识到,当我按下手机的“主页”按钮时,该应用程序仍在进行刷新呼叫。有什么方法(属性或事件)知道应用何时在后台运行,所以我可以停止计时器。

花点时间

1 个答案:

答案 0 :(得分:0)

最后找到了一些东西:只需使用HostListener来监视窗口焦点/模糊事件,然后启用/禁用我的计时器即可。

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

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