Я создаю приложение, которое зависит от выполнения некоторого второстепенного кода в фоновом режиме, и я столкнулся с особой проблемой.
Приложение имеет таймер, NSTimer()
. Принцип, лежащий в основе всего этого, аналогичен принципу таймера (в приложении Clock, установленном на всех устройствах iOS), что означает, что когда таймер заканчивается, отображается UILocalNotification
.Выполнение кода, когда приложение находится в фоновом режиме, не работающем на физическом устройстве (SWIFT)
Все работает как ожидалось, когда я запускаю его на эмулированном устройстве в Xcode, но когда я тестирую его на своем iPhone, никаких уведомлений нет. Это что-то вроде:
var end = timerHasEnded()
if end == true{
println("the timer has ended")
}
и не работает. Поэтому я проверил, даже если приложение обнаруживает фон UIApplicationState
, делая это, и оно не находится на физическом устройстве. Интересно, что он делает это на эмулированном устройстве.
Я попытался запустить таймер на фоновом потоке, используя QOS_CLASS_BACKGROUND
и dispatch_async
безрезультатно. Кто-нибудь может мне помочь?
Да, я могу подтвердить, что это единственный путь, я обнаружил, что вы можете отобразить уведомление, когда приложение работает в фоновом режиме. UIAlertViewController не может этого сделать – allisius