NSTimer Keep counting after app is closed in iPhone

匿名 (未验证) 提交于 2019-12-03 02:28:01

问题:

I have a timer that have to count up to 8 hours (28800 second) after that it should be released

im wondering how to keep the timer running at the background and/or when application is closed?

this is the NSTimer :

stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0                                                       target:self                                                     selector:@selector(updateTimer)                                                     userInfo:nil                                                      repeats:YES]; 

and this is my condition :

 counter++;  if (counter >= 28800) {     [stopWatchTimer invalidate];     counter =0;      timeLabel.text = @"Time Out"; } 

回答1:

You can't - once your app is closed then it's not running anymore so the timer won't be running either.

Take a look at local notifications?



回答2:

When application goes in background, In application delegate method add current counter value and current time in nsuserdefault.

Now when application becomes active before that will called so in that method get total seconds application was in background ie (current time of application) - (time when application went background which is stored in nsuserdefault) calculate in seconds

 if((seconds calculated) > (28800 - (current counter value stored in nsuserdefault)))  {     // stop timer as it has gone beyond eight hours  }   else  {   // continue task  } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!