怎样用代码方式退出IOS程序

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7484579

原文 :iOS Developer Library

Technical Q&A QA1561

How do I programmatically quit my iOS application?


Q:怎样用代码方式退出IOS程序

 A:没有提供用于正常退出IOS应用的API。

   在IOS中,用户点击Home键来关闭应用。你的应用应该符合以下条件:它不能自行调用方法,而应采取措施与用户交互,表明问题的性质和应用可能会采取的行为,比如打开WIFI,使用定位服务等供用户选择确定使用;

   警告:不要使用exit函数,调用exit会让用户感觉程序崩溃了,不会有按Home键返回时的平滑过渡和动画效果;另外,使用exit可能会丢失数据,因为调用exit并不会调用-applicationWillTerminate:方法和UIApplicationDelegate方法;

    如果在开发或者测试中确实需要强行终止程序时,推荐使用abort 函数和assert宏;

 

下面是使用exit函数关闭应用:

 1 //-------------------------------- 使用退出程序 -----------------------------------------//
 2  
 3 - (void)exitApplication {
 4  
 5     [UIView beginAnimations:@"exitApplication" context:nil];
 6  
 7     [UIView setAnimationDuration:0.5];
 8  
 9     [UIView setAnimationDelegate:self];
10  
11     // [UIView setAnimationTransition:UIViewAnimationCurveEaseOut forView:self.view.window cache:NO];
12  
13     [UIView setAnimationTransition:UIViewAnimationCurveEaseOut forView:self.window cache:NO];
14  
15     [UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)];
16  
17     //self.view.window.bounds = CGRectMake(0, 0, 0, 0);
18  
19     self.window.bounds = CGRectMake(0, 0, 0, 0);
20  
21     [UIView commitAnimations];
22  
23 }
24  
25  
26  
27 - (void)animationFinished:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
28  
29     if ([animationID compare:@"exitApplication"] == 0) {
30  
31         exit(0);
32  
33     }
34  
35 }

 

posted @ 2015-06-29 18:57  oho_yoho  阅读(170)  评论(0)    收藏  举报