Как я могу узнать, завершено ли приложение пользователем? - PullRequest
1 голос
/ 22 сентября 2011

Как я могу узнать, завершено ли приложение пользователем?

(Двойной щелчок по кнопке «Домой» и нажатие красной кнопки «-»)

Мне нужен образец или псевдокод ...

Ответы [ 4 ]

2 голосов
/ 22 сентября 2011

Попробуйте это:

- (void)applicationWillTerminate:(UIApplication *)application
{
    /*
     Called when the application is about to terminate.
     Save data if appropriate.
     See also applicationDidEnterBackground:.
     */
}

Вы должны реализовать метод выше в вашем классе, который реализует UIApplicationDelegate

Еще несколько замечаний: этот метод не будет вызываться, если вы останавливаете свое приложение через Xcode (кнопка остановки отладки). Так что будьте терпеливы при тестировании.

2 голосов
/ 22 сентября 2011

Когда пользователь убивает приложение:

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

}

Приложение перейдет в неактивное состояние:

 - (void)applicationWillResignActive:(UIApplication *)application
 {
  NSLog(@"Application Did Resign Active");
 }

Пользователь нажимает кнопку «Домой»:

 - (void)applicationDidEnterBackground:(UIApplication *)application
{
  NSLog(@"Application Did Enter Background");
}
2 голосов
/ 22 сентября 2011

Иногда вы получаете UIApplicationWillTerminateNotification (вы также можете реализовать метод applicationWillTerminate: в своем делегате приложения), но это не гарантирует, что вы вообще получите какое-либо уведомление в этом случае.Поэтому не надейтесь на это.

Вы не получите уведомление, если ваше приложение «приостановлено», то есть оно работает в фоновом режиме, но не работает.В приостановленном случае вы просто убиваетесь с неуловимым SIGKILL.То же самое, когда вас убивают из-за нехватки памяти.

Из документации для applicationWillTerminate: (выделено мое):

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

0 голосов
/ 22 сентября 2011

Также есть это:

- (void)applicationDidEnterBackground:(UIApplication *)application {

}

Может быть полезно, если вы хотите знать, это входило в фон;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...