Из того, что я испытал:
Прежде всего, таймер остановится, когда приложение перейдет в фоновый режим, чтобы остановить быстрый разряд батареи и продлить срок службы батареи даже для экономии потребления квоты сетевых пакетов, когда вы не используете приложение активно.
Вы можете выполнять задачи фоновой загрузки, добавив в AppDelagate
"как вы упомянули" следующее:
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
//Do whatever you need
//This will keep running for max 3 mins
}
Но то же самое относится и к задачам фоновой выборки. У вас есть максимум 3 минуты фоновой активности, за исключением служб определения местоположения, воспроизведения аудио, VOIP и некоторых других задач.
Я действительно не знаю, как использовать и функциональность приложения, и почему вам нужно получать данные с сервера каждый час, если приложение уже закрыто, и пользователь не беспокоится о просмотре обновленных данных.
Но если эти данные важно обновлять каждый час и нужно уведомлять пользователя об обновлениях, "например, проверка статуса определенного события на сервере, например создание приложения чата, и пользователь получил сообщение"< /эм>. Тогда лучше отправить удаленное push-уведомление пользователю с сервера при наступлении определенного события, и это заставит пользователя снова получить приложение на переднем плане, и приложение начнет получать обновленные данные "в моем случае здесь сообщение ".
person
Kegham K.
schedule
12.05.2017