Ionic将应用程序带到前台无法在Android中运行

时间:2019-04-21 22:43:04

标签: android ionic-framework foreground

我正在使用Ionic构建应用程序,该应用程序应在后台运行,并且一旦发生感兴趣的事件,该应用程序应出现在前台。

为此,我使用BackgroundMode。

在构造函数中,我启用后台模式。

this.backgroundMode.enable();

为了测试此功能,我创建了一个功能,该功能在按下按钮后等待5秒钟并发送本地通知,并应将应用程序置于前台

  bringToForeground() {
    this.sleep(5000).then(() => {
      this.backgroundMode.moveToForeground();
      this.localNotifications.schedule({
        id: 2,
        text: '2 -> Single ILocalNotification',
        sound: 'file://sound.mp3',
        data: { secret: "" }
      });

    })

  }


  sleep(time) {
    return new Promise((resolve) => setTimeout(resolve, time));
  }

要测试,我

  1. 在Samsung Galaxy 7(Android)上运行应用程序
  2. 在应用程序中按下按钮以触发功能
  3. 按电话上的主页按钮,使应用程序进入后台
  4. 等等。

发生的事情是我看到通知,该应用程序仍在后台运行。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您在构造函数上使用过enabled()吗?像这样:

startBackgroundMode(){

        console.log('Iniciando background mode')        

        this.backgroundMode.enable();
        this.backgroundMode.overrideBackButton();               
        //this.backgroundMode.excludeFromTaskList();    

        this.backgroundMode.on('activate').subscribe(value => {
            this.backgroundMode.disableWebViewOptimizations();
        });
    }

对我来说,解决方案是使用Observable,然后我订阅并调用moveToForeGround()

检查完整答案here