当我登录时,我开始检查可观察的工作,但是当应用程序在后台运行时,它没有执行。我使用的是可观察的,因为每隔5秒钟应刷新一次。似乎它没有在后台运行。任何其他解决方案,每隔1分钟运行一次代码,无论应用程序是在后台还是在前台。提前致谢 ! 成功登录 this.provider.startBackgroundRefreshInterval(); 在服务类别下面添加了代码
startBackgroundRefreshInterval() {
var refreshInterval = localStore.getPersistedData(App.ISCHECKBOX_KEY);
this.timerSubscription = Observable.interval(parseInt(refreshInterval))
.subscribe((val) => {
console.log("Observable subscribed");
});
}
/**
* unsubscribe subscription
*/
unSubscribeOnehourSubscription() {
console.log("Observable Unsubscribed");
this.timerOneHourSubscription.unsubscribe();
}
现在refreshInterval基于复选框值选择
updateCheckboxList(value:any) {
this.service.unSubscribeSubscription();
this.service.startBackgroundRefreshInterval();
}
应用程序一旦进入后台,可观察到就不会调用 当前refreshInterval选择为1分钟
在离子背景中连续调用functon的其他方法是什么?
答案 0 :(得分:1)
我目前正在从事同一件事。虽然我不能说我对此一无所知,但这是我到目前为止所发现的。
当您的应用进入后台时,它实际上就进入了睡眠状态。意味着您所指望的所有代码(包括间隔)都不会执行。
以下是我研究过的一些解决方案。
1)如cordova插件https://github.com/transistorsoft/cordova-plugin-background-fetch和https://ionicframework.com/docs/native/background-fetch所示,BackgroundFetch将在android和ios中尝试每隔大约15分钟运行一次回调(请阅读链接,了解该计时为何重要) )。 2)如此处https://ionicframework.com/docs/native/background-mode所示,BackgroundMode将使您的应用处于您可以控制的“在后台保持活动状态”模式。这样可以确保您的应用程序即使在后台也可以正常运行,但是您可能会发现商店不接受这种做法(尤其是ios商店可能会拒绝它)。
这是我到目前为止发现的。希望对您有所帮助。