iOS生命周期之WillTerminate不执行的问题

//今天遇到了一个问题

//applicationWillTerminate:(UIApplication *)application 在退出程序时不执行怎么办?

//答案:直接上代码...


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


    NSLog(@"%s", __PRETTY_FUNCTION__);

    __block UIBackgroundTaskIdentifier identifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

        if (identifier != UIBackgroundTaskInvalid) {

            [[UIApplication sharedApplication] endBackgroundTask:identifier];

            identifier = UIBackgroundTaskInvalid;

        }

    }];

    

    dispatch_async(dispatch_get_main_queue(), ^{

        NSLog(@"执行进入后台调用的方法...");


       //此处写正常进入后台时程序需要执行的动作


        if (identifier != UIBackgroundTaskInvalid) {

            [[UIApplication sharedApplication] endBackgroundTask:identifier];

            identifier = UIBackgroundTaskInvalid;

        }

    });

}


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


//此方法内写程序将要退出时需要执行的动作


// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

    

    NSLog(@"%s", __PRETTY_FUNCTION__);

    [self.backView removeFromSuperview];

    [self.manager closeSocketServer];

    [self.conn stopNotifier];

    [[NSNotificationCenter defaultCenter]removeObserver:self];

}


你可能感兴趣的:(iOS)