2014-04-30 2 views
1

카운트 다운 기능이있는 앱이 있습니다 (0에 도달 할 때까지 6 시간 카운트 다운). 사용자가 앱을 배경으로 이동하면 카운터가 중지되고 앱이 포 그라운드로 돌아올 때만 재개됩니다. 앱이 종료되면 카운터가 재설정됩니다.iOS 앱에서 백그라운드로 카운터 실행

아무리 계속 실행하면 방법이 있습니까? Apple Clock 앱에는 스톱워치를 작동시킬 때 비슷한 기능이 있습니다. 스톱워치는 앱을 종료하고 다시 시작한 후에도 작동합니다.

감사합니다.

답변

5

시간을 카운트 다운하기 때문에 진드기를 신뢰할 수 없으므로 실제로 카운트하지 않는 것이 좋습니다.

대신 시작 시간을 기억하십시오. 그런 다음, 각 틱마다 시작 시간 이후에 경과 한 시간을 계산하십시오.

알다시피, 타이머가 앱이 백그라운드에있을 때 중지됩니다. 그러나 중요하지 않은 시작 시간을 알고있을 때 : 앱이 포 그라운드로 다시 돌아올 때 경과 시간을 다시 계산하면 원하는 시간이 경과하면 작업을 수행 할 수 있습니다.

앱이 종료되었을 때 작동하게하려면 NSUserDefaults을 통해 시간을 기억해야합니다. 다음 번에 앱이 시작될 때 NSUserDefaults에서 날짜를 읽은 다음 시간이 이미 경과했는지 확인합니다. 그렇다면 조치를 취하십시오. 그렇지 않으면 타이머를 시작하십시오.

조치를 취한 후에 NSUserDefaults에서 날짜를 지우십시오.

마지막으로 중요한 것은 특정 시간에 실행되도록 예약 할 수있는 local notifications입니다. 앱을 백그라운드에서 실행 중이거나 실행 중이 아닌 경우 사용자에게 알릴 수 있습니다.

+0

네, 맞습니다. –

+0

간단한 방법은 아직 생각하지 않았습니다. 정말 많이 시도해 줘서 고맙습니다! – EpicSyntax

관련 문제