首页 > 解决方案 > Ionic 将应用程序带到前台在 Android 中不起作用

问题描述

我正在使用 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. 在三星 Galaxy 7 (Android) 上运行应用程序
  2. 按应用程序中的按钮触发功能
  3. 按下手机上的主页按钮,使应用程序进入后台
  4. 等待。

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

关于发生了什么的任何想法?

标签: androidionic-frameworkforeground

解决方案


您在构造函数上使用了 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()

在此处查看完整答案


推荐阅读