Метод прерывания, когда пользователь нажимает кнопку «Домой»?

#objective-c #ios #cocoa-touch #methods #lifecycle

#цель-c #iOS #cocoa-touch #методы #жизненный цикл

Вопрос:

Что происходит, когда пользователь нажимает кнопку «Домой» на устройстве iOS, а приложение в данный момент запускает метод: завершит ли метод выполнение или метод будет прерван на середине?

Комментарии:

1. — (void)applicationWillResignActive: (UIApplication *) вызывается приложение. Я бы представил метод, который вас интересует, о завершении, но любые обратные вызовы и тому подобное могут соблюдаться или не соблюдаться

2. Попробуйте. Поместите операторы печати вверху и внизу метода, который вызывается непрерывно, а затем нажмите их кнопку home

Ответ №1:

Как писал Maudicus, applicationWillResignActive: вызывается делегатом приложения, а также applicationDidEnterBackground: . Вы должны предположить, что любой метод, который выполняется в данный момент, будет прерван. Если вы хотите убедиться, что определенная операция выполняется, вы должны поместить ее в один из вышеупомянутых методов.

Комментарии:

1. Метод не будет прерван, если это не действительно длительная операция. Я забыл период ожидания, но вам дается ограниченное количество времени для очистки фона. Это время ожидания одинаково, независимо от того, находится ли код в текущем запущенном методе или он перемещен в один из фоновых методов. Если код завершается слишком долго, он будет прерван независимо от того, в каком методе он используется. Таким образом, вы ничего не получаете, перемещая его в фоновый метод.