在 AppDelegate 里面,代理方法
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
是App进程被杀死的时候的代理方法,在这里开发者可以处理相应的业务逻辑。
在实际应用过程中,App进程被杀死有两种可能:
1.手动杀掉进程(双击Home键,出现多任务界面,上滑需要杀掉的App)。
2.系统杀掉进程(App在后台的时候:若手机内存不足,系统会自动杀掉进程;若手机内存正常,则测试时间约180秒后,系统杀掉进程)。
手动杀死进程的时候,会执行applicationWillTerminate: 方法。
系统杀死进程的时候,需要在applicationDidEnterBackground: 方法中添加一句代码
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(){}];
}
这样在正常的情况下,app进程被杀死,就会响应applicationWillTerminate: 了。
不正常的情况就是程序崩溃,就不会响应这个方法了,那就需要单独处理崩溃情况下的业务逻辑了。
网友评论