#ios #uiapplication #idle-timer
#iOS #uiapplication #таймер простоя
Вопрос:
У меня есть опубликованное приложение, которому необходимо поддерживать отображение в течение длительного периода времени. Я использую UIApplication.isIdleTimerDisabled
его для управления, устанавливая значение true, когда мне нужно включить отображение, и устанавливая значение false, когда оно больше не требуется.
Поскольку приложение распространяется через Apple App Store, я получаю отчеты при возникновении сбоев. Иногда я получаю отчет, который указывает на сбой в строке, куда я звоню UIApplication.shared.isIdleTimerDisabled = false
, т. Е. Где я Восстанавливаю нормальное состояние дел после того, как экран был включен некоторое время. Ниже приведен снимок экрана трассировки стека.
Я не могу воспроизвести проблему самостоятельно. Есть тысячи пользователей, которые загрузили и попробовали программу, и я получаю только одно или два сообщения о сбоях в неделю, поэтому проблема должна возникать из-за какого-то редко встречающегося набора условий. Отчеты о сбоях поступают с различных iPhone и iPad под управлением iOS 13 и 14.
Есть идеи?
Комментарии:
1. Есть ли сообщение о причине сбоя? Я подозреваю, что вам нужно отправить в основной поток, потому что управление отображением связано с пользовательским интерфейсом. Но поскольку это нелегко воспроизвести, я не уверен в этом ответе.
2. Возможно, вы правы. Я собираюсь завершить вызов в основном потоке и посмотреть, исчезнет ли он.
3. Это исключение NSException, вероятно, выдает какое-то полезное сообщение в журнале консоли приложения. Вы получаете их с отчетами о сбоях?