我正在创建一个应用程序,它可以作为一个拳击计时器,计算轮次并在每个结束时播放声音。 问题是当应用程序进入后台模式时,NSTimer会停止。在应用程序商店中有一些拳击计时器,所以我有一些方法可以实现。
答案 0 :(得分:1)
您应该在转到后台之前存储当前时间(在AppDelegate
中):
- (void)applicationWillResignActive:(UIApplication *)application
{
self.startTime = [NSDate date];
.
.
.
// Rest of your code
}
然后在app激活时执行相同的操作:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
self.endTime = [NSDate date];
.
.
.
// Rest of your code
}
然后你可以减去它们,找出应用程序在后台的数量,并根据它做你想做的事。
如果您想在应用程序位于后台时执行某些操作,则应在应用的Background Mode
文件(或.plist
部分)中启用Capabilities
,这通常用于VOIP应用程序或类似的东西。