iphone - NSTimer 停止 iphone 声音?

标签 iphone ios objective-c jailbreak

我必须在我的应用程序中的特定时间间隔后调用一个函数调用 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/

相关文章:

ios - WatchKit 的用户定义设置

ios - 如何在 Scene Kit 的 3D SCNNode 中添加 2D View

iphone - 无论旋转如何锁定方向

iphone - 邮件功能 iphone App 崩溃

iphone - PhoneGap 屏幕尺寸支持

ios - 在 iOS 13 模拟器上从源代码编译 Metal 着色器会出现 PCH 错误

ios - UIButton-移动和缩放

objective-c - 核心数据对象删除导致应用程序崩溃

iphone - 倾斜 iPhone 以更改 UIImage(加速计)

iphone - 是否可以通过 UIActivityViewController 共享图像并保留 exif 数据?