Я использую NSTimer для воспроизведения аудиофайла каждые x секунд. Звуковые файлы в синхронизации с постоянно запущенным процессом, поэтому интервал NSTimer является кратчайшим это может быть (к моему знанию):NSTimer не надежен при переходе на задний план
self.updateTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(updateTimerFired:) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:self.updateTimer forMode:NSRunLoopCommonModes];
Моей проблема возникает при переходе к фоновому состоянию, например, когда пользователь нажимает кнопку «домой». Похоже, что таймер возникает с таймером, а метод «updateTimerFired:» не называется надежным во время перехода. Это приводит к тому, что аудиофайлы не синхронизируются, хотя после завершения перехода они восстанавливают резервную копию. Обратите внимание, что мое приложение включает в себя фоновый фоновый режим.
Есть ли более надежный инструмент, отличный от NSTimer, чтобы гарантировать, что латентность не возникает при переходе на задний план?
Рассматривали ли вы вместо этого использование местных уведомлений? Я использовал это в переданной для аналогичной проблемы и не помню, что у меня были проблемы с задержкой. И вы используете для этого фоновую задачу? – MCMatan
@MCMatan Я попытался выполнить фоновые задачи, но латентность все же произошла. Я не рассматривал местные уведомления. Я посмотрю на это и посмотрю, будут ли они работать на то, что я пытаюсь сделать. – hgwhittle
Хорошо, вы должны проверить местное уведомление, возможно, оно вам подойдет. Кроме того, вы создаете NSTimer с дельта-разницей между тем для фоновой задачи или используете ли вы один и тот же? – MCMatan