我必须在我的应用程序中的特定时间间隔后调用一个函数调用 myfunc,并且这个 func 永远运行。但是,问题是每当我使用以下代码时,我的 iPhone 声音就会消失。
self.now = [NSDate date] ;
self.timer = [[NSTimer alloc] initWithFireDate:self.now
interval:100
target:self
selector:@selector(myfunc)
userInfo:nil
repeats:YES] ;
self.runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:self.timer forMode:NSDefaultRunLoopMode];
[self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10000]];
只有铃声有效。所有其他声音都停止工作。像键盘锁定声音和让您调节 iPhone 音量的音量条也消失了。请告诉我我做错了什么会损坏 iPhone 声音。
我很确定这是一段停止 iphone 声音的代码。当我评论它时,声音开始工作。有人知道这种方法的解决方案吗?如果没有,是否有人知道执行相同功能的另一种方法?
最佳答案
NSTimer
在应用程序处于后台状态时暂停。
您必须启动一些后台任务才能执行您想要的操作。但即便如此,应用程序进入后台后,您仍将被限制在一定时间内。
真正的后台行为仅适用于位置跟踪、VoIP 或音频应用。其他应用程序必须面临限制:一旦进入后台,您将有一定的时间来完成您从 beginBackgroundTaskWithExpirationHandler:
(backgroundTimeRemaining) 开始的任务。
iOS 应用程序编程指南,在后台执行代码中描述了整个事情。
关于iphone - NSTimer 停止 iphone 声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403529/