2011-04-27 97 views
0

我开发了一款iPhone应用程序,它使用NSTimer每秒获取麦克风录音机输入,计算声音的幅度,并在需要时采取适当的措施。我注意到,当我的iPhone被锁定时,我的应用程序停止运行(它不会触发定时器回调函数)。当我解锁iPhone时,它会自动启动。任何人都可以请告诉我,当iPhone被锁定时,我如何允许应用程序响应?有没有其他解决方法,以便iPhone在我的应用程序运行时不应该被锁定?苹果对此有何回应?当iPhone被锁定时允许应用程序继续运行

我发现this文章但不知道这是正确的方法。

谢谢。

回答

3

当应用程序进入空闲状态时,您无法防止计时器停止。只有一种可能的方法是禁用应用程序的idleTimer。

application.idleTimerDisabled = TRUE; 
    //or 

//Disable screen dimming if no user input occur on device. 
[[UIApplication sharedApplication] setIdleTimerDisabled:YES]; 
+0

@Rahul:我想我不清楚。我不想禁用定时器。我想让计时器事件被解雇,但事实并非如此。我已经使用下面的代码行来创建计时器'代码'levelTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(levelTimerCallback)userInfo:nil repeatats:YES]; 'code' levelTimerCallback使用NSLog打印调试消息。当我的iPhone被锁定时,我停止接收此消息,并且当我解锁我的iPhone时,它再次开始打印消息。 – applefreak 2011-04-27 13:53:35

+0

@AppleDeveloper请仔细阅读我的回答。我已经提到了原因:“当应用程序进入空闲状态时,不能防止计时器停止,只有一种可能的方法是禁用应用程序的空闲计时器。”当应用程序进入闲置模式或者我们可以说iPhone进入睡眠模式时,所有的活动都会自动停止。当手机醒来时,所有的活动再次开始。 – 2011-04-28 06:17:43

+0

好的。得到它了。我认为禁用空闲计时器并不是很好的解决方案,因为它耗尽了电池。无论如何,当屏幕锁定时,要继续监控麦克风录音吗?基本上我在定时器回调函数上使用[记录器更新]来获得任何由麦克风识别的输入,但是当iPhone被锁定时它不能工作。 – applefreak 2011-04-28 13:01:39

相关问题