Короткий ответ: № Длинный ответ более нюансирован, но вы все равно не должны этого делать. Вы можете планировать свое приложение для обновления фона, но это ненадежно (приложение не будет запускаться с постоянными интервалами), и если пользователь проверит приложение в коммутаторе задач, приложение не будет запускаться вообще в фоновом режиме. Еще один хакерский способ - заставить сервер посылать тихий толчок, чтобы пробудить приложение более надежно. Однако это еще не гарантировано. если пользователь переместит приложение в переключатель задач, ваше приложение не будет запущено.
В любом случае вы не можете инициировать обновления виджета из своего приложения. Операционная система управляется жизненным циклом виджета. Вместо этого реализуйте widgetPerformUpdate(completionHandler:)
и выполняйте обновления своего виджета. Однако, как и выше, это не периодическая операция.
Спасибо. Ваш ответ ясен. Если приложение всегда находится на заднем плане (предположим, что пользователь не пропустит его), могу ли я выполнить некоторую периодическую задачу? то есть любой способ заставить приложение запускать некоторые коды, когда он неактивен. – user6539552
Если пользователь не протащил его, лучшим вариантом будет тихая push-уведомления (полезная нагрузка с только «contentAvailable: 1'). Это пробудит приложение и позволит вам работать. –