Что произойдет, если я звоню beginBackgroundTaskWithExpirationHandler
периодически каждые несколько минут и не звоню endBackgroundTask
?Есть ли предел для фоновых задач?
Есть ли какой-либо предел для создания фоновых задач?
Что произойдет, если я звоню beginBackgroundTaskWithExpirationHandler
периодически каждые несколько минут и не звоню endBackgroundTask
?Есть ли предел для фоновых задач?
Есть ли какой-либо предел для создания фоновых задач?
Что произойдет, если я называю
beginBackgroundTaskWithExpirationHandler
периодически каждые минут и никогда не называйтеendBackgroundTask
beginBackgroundTaskWithExpirationHandler:
фактически не «начинает» задачу. Возможно, лучше подумать о том, что «register ...», а не «begin ...». Вы просто сообщаете системе, что вы находитесь в середине того, что хотите завершить, если все в порядке.Есть ли какие-либо ограничения для создания фоновой задачи?
Что делать, если у моей задачи должно быть больше времени для выполнения, я имею в виду, есть ли способ сбросить время истечения срока действия, проверив местоположение или что-то еще? –
Да, приложения, которые инициируют загрузку на переднем плане, могут отменить управление этими загрузками в систему, тем самым позволяя приостанавливать или прекращать приложение во время загрузки. Это поможет вам реализовать его => https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html – ystack
Что произойдет, если вы зарегистрируете новую задачу в expirationHandler? Будете ли вы получать больше, пока ОС не устанет от вас? Или это просто терпит неудачу? – Honey
В зависимости от того, находится ли ваше приложение на переднем плане или нет. – rmaddy
@rmaddy Что делать, если приложение всегда в фоновом режиме? –
Если приложение было сохранено в фоновом режиме с помощью этого механизма, и вы пренебрегаете вызовом 'endBackgroundTask', ОС будет убивать ваше приложение (а не просто изящно приостанавливать его). Поэтому вы обычно хотите вызвать 'endBackgroundTask', даже если вы делаете это только в блоке тайм-аута. – Rob