第一种方法:
- //首先声明app
-
-
UIApplication * app= [UIApplication sharedApplication]; -
-
//接下来四行是新的功能,能检查设备是否支持后台,老系统和一代的backgroundSupported = NO;支持的自然就是YES啦 -
UIDevice* device = [UIDevice currentDevice]; -
BOOL backgroundSupported = NO; -
if ([device respondsToSelector:@selector(isMultitaskingSupported)]) -
backgroundSupported = device.multitaskingSupported; -
-
//如果设备不支持后台,那么就继续使用applicationWillTerminate : -
if(backgroundSupported==NO) -
{ -
[[NSNotificationCenter defaultCenter ] addObserver:self -
selector:@selector(applicationWillTerminate :) -
name:UIApplicationWillTermina teNotification -
object:app]; -
} -
-
//如果支持 -
else{ -
-
//这个新的UIApplicationWillResignA ctiveNotification就是在用户按下home键时的通知,建议用它的selector去保存数据,能防止用户直接在任务管理器里强制退出~ -
[[NSNotificationCenter defaultCenter ] addObserver:self -
selector:@selector(applicationDidEnterBackg round:) -
name:UIApplicationWillResignA ctiveNotification -
object:app]; -
-
//这个UIApplicationWillEnterFo regroundNotification是app在切回前台时的通知,可以显示“欢迎回来”之类的=___= -
[[NSNotificationCenter defaultCenter ] addObserver:self -
selector:@selector(applicationDidBecomeActi ve:) -
name:UIApplicationWillEnterFo regroundNotification -
object:app]; -
-
}
第二: 在工程中的Info.plist中有一个属性是“application don‘t run in background”,设置他的值,可以实现后台的运行或者暂停退出等功能。
另附加注意,更详细更有用:
最终完美版:
首先,对于iphone4的手机 抑或是ios4 的项目 重载了下面的几个方法,系统会自动的保留现场,不用自己写代码控制;
- (void)applicationWillResignAct ive:(UIApplication *)application {
//home键时执行
//直接退出程序
//[[UIApplication sharedApplication] terminateWithSuccess];
}
- (void)applicationDidEnterBackg round:(UIApplication *)application {
//home键时执行
//直接退出程序
**** [[UIApplication sharedApplication] terminateWithSuccess];
}
- (void)applicationWillEnterFore ground:(UIApplication *)application {
//重新回到活跃状态
}
- (void)applicationDidBecomeActi ve:(UIApplication *)application {
//重新回到活跃状态
}
然后,打***的那行代码主要实现,按home键程序直接退出,在有些程序中为了安全的考虑会要求这样做,但那行代码引用的是一个私有的方法,app store的审核是通不过的(本人亲身经历被打回),还有种方法是:把***的那行代码换成“exit(0);”,这行代码也是可以实现按home键退出程序的功能,而且能通过审核
另附加注意,更详细更有用:
最终完美版:
首先,对于iphone4的手机
- (void)applicationWillResignAct
}
- (void)applicationDidEnterBackg
}
- (void)applicationWillEnterFore
}
- (void)applicationDidBecomeActi
}
然后,打***的那行代码主要实现,按home键程序直接退出,在有些程序中为了安全的考虑会要求这样做,但那行代码引用的是一个私有的方法,app