2017-11-12 1 views
2

Ionic3 애플리케이션에 타이머가 있습니다. 타이머는 setInterval으로 완벽하게 실행되지만 앱을 절전 모드로 닫으면 타이머가 멈 춥니 다. 내 응용 프로그램을 다시 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/과 같은 플러그인은 App Store가이 플러그인을 사용하는 Apps를 거부하기 때문에 작동하지 않습니다.

다른 아이디어?

+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 = 순간();'및 : if (! this.runClock) { this.runClock = true; this.startAt = moment(); this.time = 순간 (순간(). diff (this.startAt)). 형식 ('HH : mm : ss'); this.content.resize(); } '타이머가 처음 "01 : 00 : 00"부터 보여지고 이것은 남아 있습니다. – eleinad

+0

문제의 코드는'startTime' 메서드가 변경되지 않은 것으로 가정합니다. 매초마다'time'을 setInterval로 업데이트해야합니다. – estus

+0

나는 그랬다. 이제 카운터가 작동한다. 하지만 카운터는 01시에 시작됩니다. 이유가 있습니까? – eleinad

관련 문제