Да, все здесь ожидается. От JD Wooder есть удаленный ответ, который правильно связал документацию: «Управление жизненным циклом вашего приложения». Как правило, фоновые приложения iOS не убиваются заранее. Их убивают только тогда, когда нужны системные ресурсы. Это непредсказуемо, и приложение, как правило, не получит сообщение applicationWillTerminate
, когда это произойдет (потому что приложение обычно не работает в этот момент, и его не разбудят, чтобы убить). Ваше приложение должно обрабатывать как холодный запуск (appDidFinishLaunching
), так и горячий запуск (applicationDidBecomeActive
).
Перезапуск приложения с нуля стоит дорого, поэтому iOS предпочитает хранить недавно использованную вещь в памяти, если ее нетресурсное давление. Приложения, которые ничего не делают, очень дешевы. чтобы быть в курсе.
Обратите внимание, что iOS 13 стала намного более агрессивной в убийстве приложений в фоновом режиме, и что большие камеры на новых телефонах приводят к нехватке памяти, которая также убивает приложения быстрее, поэтому не стоитслишком долго бегать в фоновом режиме. Но это тоже очень нормально.