android - 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));
}
为了测试它,我
- 在三星 Galaxy 7 (Android) 上运行应用程序
- 按应用程序中的按钮触发功能
- 按下手机上的主页按钮,使应用程序进入后台
- 等待。
发生的事情是我看到通知,应用程序仍在后台运行。
关于发生了什么的任何想法?
解决方案
您在构造函数上使用了 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()
在此处查看完整答案
推荐阅读
- html - 如何将文本和未排序列表放在同一行
- python - kdims 如何为 geoviews 中的多边形工作?
- java - 如何更改 Recyclerview 所选项目的背景
- c++ - 动态分配内存
- javascript - 创建日期选择器时引导日期选择器设置日期
- c# - 我怎样才能随机化(不是随机播放)一个字符串?
- swift - ImagePicker 确认视图对齐
- javascript - 如何使用管道从复选框列表中过滤Angular 7中的对象数组
- laravel - 无法在 Bitnami LAMP 堆栈上使用 Cron 运行 PHP Artisan 命令
- angular - 以不同的角度分量显示数据