当应用在后台时,让NSTimer保持运行

时间:2012-05-14 08:10:37

标签: ios nstimer multitasking nsthread

我希望有专家可以帮助我解决这个问题:

我用Google搜索了几个小时,但是当应用程序在后台运行时,如果有任何方法可以保持正在运行的NSTimer处于活动状态,则无法找到任何信息?

问题场景是我需要在按钮点击时设置倒数计时器。剩下的时间显示(02:34:45)作为按钮的标题。当应用程序进入后台或暂停时,我的计时器如何继续运行。请帮助我如何保持警报剩余时间,警报选择的值是什么(如2小时3分钟)

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

如果您将其用于闹钟,最好的办法是使用本地通知。这样您就不需要使用任何后台处理模式。

当您的应用即将进入后台时(在应用代表的applicationWillResignActiveapplicationDidEnterBackground中),请确定您的计时器剩余时间。然后在将来安排本地通知:

NSTimeInterval timeUntilNotification = ...

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:secondsUntilNotification];
localNotif.soundName = UILocalNotificationDefaultSoundName;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

当您的应用再次激活时,请务必使用cancelAllLocalNotifications取消所有通知。

相关问题