#objective-c #ios #cocoa-touch #methods #lifecycle
#цель-c #iOS #cocoa-touch #методы #жизненный цикл
Вопрос:
Что происходит, когда пользователь нажимает кнопку «Домой» на устройстве iOS, а приложение в данный момент запускает метод: завершит ли метод выполнение или метод будет прерван на середине?
Комментарии:
1. — (void)applicationWillResignActive: (UIApplication *) вызывается приложение. Я бы представил метод, который вас интересует, о завершении, но любые обратные вызовы и тому подобное могут соблюдаться или не соблюдаться
2. Попробуйте. Поместите операторы печати вверху и внизу метода, который вызывается непрерывно, а затем нажмите их кнопку home
Ответ №1:
Как писал Maudicus, applicationWillResignActive:
вызывается делегатом приложения, а также applicationDidEnterBackground:
. Вы должны предположить, что любой метод, который выполняется в данный момент, будет прерван. Если вы хотите убедиться, что определенная операция выполняется, вы должны поместить ее в один из вышеупомянутых методов.
Комментарии:
1. Метод не будет прерван, если это не действительно длительная операция. Я забыл период ожидания, но вам дается ограниченное количество времени для очистки фона. Это время ожидания одинаково, независимо от того, находится ли код в текущем запущенном методе или он перемещен в один из фоновых методов. Если код завершается слишком долго, он будет прерван независимо от того, в каком методе он используется. Таким образом, вы ничего не получаете, перемещая его в фоновый метод.