iphone多任务 - iphone手势设置



当iPhone进入待机模式时iPhone应用程序会发生什么? (4)

请参阅iPhone OS编程指南中的应用程序中断 ,特别是applicationWillResignActiveapplicationDidBecomeActive事件。 (整个指南当然值得一读。)当你忽略事件时,计时器似乎会持续一段时间,然后停下来。 听起来合乎逻辑,应用程序可以很容易地耗尽电池,如果继续运行。 那么应用程序到底发生了什么? 我想这只是没有得到任何CPU时间 - 它冻结,只有当你打开机器的时候解冻。

我的应用程序使用NSTimer,当iPhone进入待机模式(按下硬件按钮或空闲计时器)时,NSTimer似乎不会启动。

当我再次激活iPhone时,我的应用程序仍然在前台。 当iPhone处于待机模式时,第三方应用程序会发生什么?


Answer #1

我相信你的应用程序在挂起时应该正常运行。 (想想潘多拉电台)

检查您的计时器是否由于您的视图被隐藏或发生其他事件而被释放。


Answer #2

我的第一个建议是不要禁用空闲计时器,这只是一个黑客。 如果你想在UI事件中保持一个定时器的运行,使用NSCommonModes在当前运行循环中运行定时器:

// create timer and add it to the current run loop using common modes

self.timer = [NSTimer timerWithTimeInterval:.1 target:self selector:@selector(handleTimer) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];

Answer #3

我在这篇文章中使用了我正在构建的一个小样本的信息。 这是我在启动播放以防止音频停止时使用的代码:

AudioSession.Category = AudioSessionCategory.MediaPlayback;

而当应用程序完成播放重置为原始值时:

AudioSession.Category = AudioSessionCategory.SoloAmbientSound;

完整的示例在这里:

http://github.com/migueldeicaza/monotouch-samples/tree/master/StreamingAudio/





xamarin.ios