2015-07-21 3 views
-1
- (void)applicationDidEnterBackground:(UIApplication *)application { 
    //...function_a call  
} 

- (void)applicationWillEnterForeground:(UIApplication *)application { 
    //...function_b call  
} 

- (void)applicationWillTerminate:(UIApplication *)application { 
    //...function_c call  
} 

Я отслеживаю свое приложение с помощью методов AppDelegates. Его работа прекрасна, если приложение просто переместится с фона на передний план. Но когда я попытаюсь удалить приложение из запущенных приложений, он сначала вызовет - (void)applicationDidEnterBackground:(UIApplication *)application, а затем вызовет - (void)applicationWillTerminate:(UIApplication *)application. Как узнать в - (void)applicationDidEnterBackground:(UIApplication *)application, что приложение завершается. В среднем, я не хочу, чтобы function_a дважды звонил, вместо этого он должен только звонить, когда приложение переходит в фоновый режим.Как узнать, заканчивается ли приложение в iOS?

Update:

Установка даже следующий наблюдатель не помогает.

UIApplicationDidEnterBackgroundNotification 
UIApplicationWillEnterForegroundNotification 
UIApplicationWillTerminateNotification 

ответ

1

- (void)applicationWillTerminate:(UIApplication *)application:

Этот метод позволяет ваше приложение знает, что он собирается быть прекращен и удаляются из памяти целиком. Вы должны использовать этот метод для выполнения любых окончательных задач очистки для вашего приложения, таких как освобождение общих ресурсов, сохранение пользовательских данных и недействительность таймеров. Для выполнения каких-либо задач и возврата вам потребуется около пяти секунд. Если метод не возвращается до истечения времени, система может полностью уничтожить этот процесс.

Для приложений, которые не поддерживают фоновое выполнение или связаны с iOS 3.x или ранее, этот метод всегда вызывается, когда пользователь выходит из приложения. Для приложений, поддерживающих фоновое выполнение, этот метод обычно не вызывается, когда пользователь выходит из приложения, потому что приложение просто перемещается в фоновый режим в этом случае. Однако этот метод можно вызвать в ситуациях, когда приложение работает в фоновом режиме (не приостановлено), и по какой-то причине системе необходимо его прекратить.

Так что это идти метод делегата, чтобы знать, когда приложение будет прекращено, либо пользователем или системой, в то время как - (void)applicationWillTerminate:(UIApplication *)application запускается всякий раз, когда приложение идет в фоновом режиме, это не значит, он был исключен, если у вас нет средств выхода не видно

Смежные вопросы