我希望有专家可以帮助我解决这个问题:
我用Google搜索了几个小时,但是当应用程序在后台运行时,如果有任何方法可以保持正在运行的NSTimer处于活动状态,则无法找到任何信息?
问题场景是我需要在按钮点击时设置倒数计时器。剩下的时间显示(02:34:45)作为按钮的标题。当应用程序进入后台或暂停时,我的计时器如何继续运行。请帮助我如何保持警报剩余时间,警报选择的值是什么(如2小时3分钟)
感谢您的帮助!
答案 0 :(得分:4)
如果您将其用于闹钟,最好的办法是使用本地通知。这样您就不需要使用任何后台处理模式。
当您的应用即将进入后台时(在应用代表的applicationWillResignActive
或applicationDidEnterBackground
中),请确定您的计时器剩余时间。然后在将来安排本地通知:
NSTimeInterval timeUntilNotification = ...
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:secondsUntilNotification];
localNotif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
当您的应用再次激活时,请务必使用cancelAllLocalNotifications
取消所有通知。