Observable не работает, когда приложение работает в фоновом режиме в ионном? - PullRequest
0 голосов
/ 02 мая 2019

Когда я вхожу в систему, я начинаю проверять наблюдаемую работу, но когда приложение находится в фоновом режиме, оно не выполняется. Я использую наблюдаемые, потому что через каждые 5 секунд должно происходить обновление. Кажется, это не работает в фоновом режиме. Любое другое решение для запуска кода через каждую минуту, независимо от того, находится приложение в фоновом режиме или на переднем плане. Заранее спасибо ! Loginsuccessfully 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 непрерывно в фоновом режиме в ионном?

1 Ответ

1 голос
/ 02 мая 2019

Я сейчас работаю над тем же.Хотя я не могу сказать, что знаю все об этом, вот что я нашел до сих пор.

Когда ваше приложение переходит в фоновый режим, оно по сути усыпляется.Это означает, что ни один из кодов, на которые вы рассчитываете, включая интервалы, не будет выполнен.

Вот некоторые решения этой проблемы, над которой я работал.

1) BackgroundFetch, как показано здесь в этом кордовеПлагин https://github.com/transistorsoft/cordova-plugin-background-fetch и https://ionicframework.com/docs/native/background-fetch будет и на android, и на ios пытаться запускать обратный вызов каждые приблизительно 15 минут (прочитайте ссылку, чтобы узнать, почему это время нужно).2) BackgroundMode, показанный здесь https://ionicframework.com/docs/native/background-mode, переведет ваше приложение в режим «оставаться активным в фоновом режиме», которым вы можете управлять.Это будет работать для поддержания вашего приложения в рабочем состоянии даже в фоновом режиме, но вы можете обнаружить, что это неприемлемо для магазинов (особенно может быть отклонено магазином ios).

Это то, что я нашел до сих пор,Надеюсь, что это полезно.

...