Приложение iOS не работает в фоновом режиме = ДА - как проверить, когда пользователь выходит из приложения

В моем файле info.plist у меня приложение не работает в фоновом режиме = ДА. Это корпоративное приложение, и я пытаюсь зарегистрировать, когда пользователь выходит (нажимает кнопку «Домой»). Но в AppDelegate я заходил в консоль, чтобы увидеть, какой метод будет вызываться, и ни один из них не вызывался (applicationWillResignActive, applicationDidEnterBackground, applicationWillTerminate). Есть ли способ определить, когда пользователь выходит с параметром plist, который у меня есть>?

Спасибо

Вот метод willTerminate, прямо из коробки:

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



}

Я изменил настройки plist и теперь могу войти из applicationDidEnterBackground.


person PruitIgoe    schedule 28.02.2013    source источник
comment
возможный дубликат applicationWillTerminate, когда он вызывается, а когда нет   -  person KevinDTimm    schedule 28.02.2013


Ответы (2)


Итак, вы не хотите, чтобы приложение работало в фоновом режиме, но хотите знать, когда оно завершится? Сделай это

UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(applicationWillTerminate:)
                                             name:UIApplicationWillTerminateNotification
                                            object:app];

Затем заполните свой собственный метод applicationWillTerminate. У вас не будет много времени, чтобы заняться делами.

person Greg Price    schedule 28.02.2013
comment
В этом нет необходимости. У делегата приложения уже есть свой метод applicationWillTerminate, который вызывается в этом случае. - person rmaddy; 28.02.2013

если вы установили для ApplicationDoesNotRunInBackgound значение YES, то это должно работать,

поместите этот метод в свой appDelegate.m

-(void)applicationWillTerminate:(UIApplication *)application
{
    NSLog(@"user exits app");
}

В моем приложении с теми же настройками plist этот метод срабатывает

person Thilina Hewagama    schedule 28.02.2013
comment
willTerminate был там, но ничего не записывалось. - person PruitIgoe; 28.02.2013
comment
не могли бы вы опубликовать здесь свой метод willTerminate .. ?? Это в файле AppDeleate.m? - person Thilina Hewagama; 28.02.2013