我试图在应用程序中整合一些ResearchKit活动,并希望能够使用Fitness Active Task,但是如果iPhone进入锁定屏幕,时间似乎就停止了。
是否需要设置一些配置才能使此任务正常运行?
我为后台任务(包括位置,音频等)启用了该应用程序,但如果将“健身任务”持续时间设置为10分钟,则当iPhone锁定屏幕打开时,计时器似乎会停止。
我认为该应用会由于位置数据而保持清醒状态,但事实并非如此。
我在这里错过了什么吗?
我有一个不同的应用程序,该应用程序使用GPS获取位置数据,并且该应用程序在后台连续运行了多个小时(> 12小时),并且似乎从未被iOS终止。
我将做更多测试,但是如果应用程序处于后台运行,Fitness Task计时器将停滞不前-这基本上不符合目的,这令人惊讶,因为ResearchKit似乎是Apple发行的。
编辑:
查看ResearchKit的源代码后,我发现了以下内容:
CLLocationManager未设置为在后台运行
self.locationManager.allowsBackgroundLocationUpdates = YES;
手机锁定时,AVAudioSession不会播放声音
if(![session setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDuckOthers | AVAudioSessionCategoryOptionInterruptSpokenAudioAndMixWithOthers | AVAudioSessionCategoryOptionAllowBluetooth // [。duckOthers,.interruptSpokenAudioAndMixWithOthers,.allowBluetooth] 错误:&错误]){ 成功=否; ORK_Log_Warning(@“无法启动音频会话:%@”,错误); }