【发布时间】:2014-03-08 15:46:46
【问题描述】:
我正在创建一个应用程序,它可以用作拳击计时器,计算回合数并在每个回合结束时播放声音。 问题是当应用程序进入后台模式时 NSTimer 停止。应用商店里有一些拳击计时器,所以我支持有一些方法可以实现。
【问题讨论】:
标签: ios background nstimer
我正在创建一个应用程序,它可以用作拳击计时器,计算回合数并在每个回合结束时播放声音。 问题是当应用程序进入后台模式时 NSTimer 停止。应用商店里有一些拳击计时器,所以我支持有一些方法可以实现。
【问题讨论】:
标签: ios background nstimer
您应该在进入后台之前存储当前时间(在您的 AppDelegate 中):
- (void)applicationWillResignActive:(UIApplication *)application
{
self.startTime = [NSDate date];
.
.
.
// Rest of your code
}
然后在应用启动时执行相同操作:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
self.endTime = [NSDate date];
.
.
.
// Rest of your code
}
然后你可以减去它们,找出应用程序在后台有多少,并据此做你想做的事。
如果您想在您的应用处于后台时执行某些操作,您应该在应用的.plist 文件(或Capabilities 部分)中启用Background Mode,这通常用于VOIP 应用或类似的东西。
【讨论】: