Лучше всего избегать остановки интервала в фоновом режиме - PullRequest
0 голосов
/ 21 сентября 2019

Мое приложение содержит информацию о расписании рейсов API.Я пытаюсь сделать это, когда пользователь нажимает на любой рейс, чтобы получить локальное уведомление, если рейс приземляется.Я использовал интервал, который тикает каждые 10 секунд для обновления статуса рейса, также я использовал Плагин фонового режима , чтобы приложение не спало во время работы.Теперь проблема в том, что интервал работает несколько минут, после чего он перестает обновляться.У кого-нибудь есть лучший логический способ избежать приложения сна и держать интервал, пока не проверит статус рейса или нет?

Мой код

async g() {



   this.backgroundMode.enable()
   this.backgroundMode.disableWebViewOptimizations()


   this.backgroundMode.on('active').subscribe(()=>{

     this.backgroundMode.enable()
     this.backgroundMode.disableWebViewOptimizations()

    let Intervals= interval(10000).subscribe(()=>{
     console.log('enable' , this.backgroundMode.isActive())

     this.http.get('xxxxxxxxxxflight=' + this.id + '', {}, {})
     .then(data => {


       let FlightDetails = JSON.parse(data.data);
       this.identification = FlightDetails.identification.callsign;
       this.Fstatus = FlightDetails.status.generic.status.text;


       console.log(this.identification + this.Fstatus)

     })


    })

    if (this.Fstatus == "landed") {

     this.localNotifications.schedule(
       [
         {
           id: 0,
           title: 'Your flight has arrived',
           text: 'Your flight ' + this.identification + 'is arrived',
           trigger: { count: 1 },
           sound: "file://assets/one.mp3"
         },

       ]);

     Intervals.unsubscribe()
     this.backgroundMode.disable()

   }
   })



 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...