2017-11-12 18 views
2

私は自分のIonic3アプリケーションにタイマーを持っています。タイマーはsetIntervalで完全に実行されますが、スリープモードに入ると、タイマーの実行が停止します。私のAppを再びfourgroundに持ってきても、タイマーは続行しますが、前に一時停止した場所から始まります。バックグラウンドモードでタイマーが一時停止しないようにする

タイマーが一時停止しないようにするにはどうすればよいですか?私のHTMLで

マイコンポーネント

time: any; 

displayTime() { 
    this.time = moment().hour(0).minute(0).second(this.counter++).format('HH : mm : ss'); 
} 

startTime() { 
    if(this.runClock == null) { 
    this.runClock = setInterval(() => { 
     this.displayTime(); 
    },1000) 
    } 
} 

私は{{ time }}を呼びます。

https://ionicframework.com/docs/native/background-mode/のようなプラグインは、このプラグインを使用するアプリケーションを拒否するため、機能しません。

他のアイデアはありますか?

+0

http://www.codingandclimbing.co.uk/blog/ionic-2-simple-countdown-timer – Sampath

+0

これはどのようにバックグラウンドモードで問題を解決するのでしょうか? – eleinad

+0

「一時停止した場所から始める」とは、瞬間が適切な時間を返さないこと、または前回の短所があることを意味しますか? – estus

答えて

3

バックグラウンドモードで実行されるアプリケーションはrejected in App Storeになる可能性があります(これには良い理由があります。何もせずにバッテリを放電するアプリを必要としないため)。これはカウンタとバックグラウンドのsetIntervalモード:

startMoment = moment(); 

displayTime() { 
    this.time = moment.utc(moment().diff(this.startMoment)).format('HH : mm : ss'); 
} 
+0

ああ、非常に良い方法!しかし、私のタイマーは起動しません...私のコード: 'startAt = moment();'と 'if(!this.runClock){ this.runClock = true; this.startAt = moment();this.time = moment(瞬間()。diff(this.startAt)).format( 'HH:mm:ss'); this.content.resize(); } 'タイマーは「01:00:00」の先頭から表示され、これが残ります。 – eleinad

+0

問題のコードは、 'startTime'メソッドが変更されないままであることを前提としています。 setIntervalで毎秒 'time'を更新する必要があります。 – estus

+0

私はそうしました、カウンターは今働きます。しかし、カウンターは01時から始まります。あなたはなぜアイデアを持っていますか? – eleinad

関連する問題