一、检测多任务是否支持:
- (BOOL) isMultitaskingSupported{
BOOL result = NO;
if ([[UIDevice currentDevice]
respondsToSelector:@selector(isMultitaskingSupported)]){
result = [[UIDevice currentDevice] isMultitaskingSupported];
}
return result;
}
多任务需要硬件支持,所以有些旧设备就算是升级到最新的操作系统后仍然是不能使用多任务的。
二、当应用程序后台时可以向系统“借”时间来继续完成任务:
使用UIApplication的beginBackgroundTaskWithExpirationHandler: 实例方法。在完成任务后,调用UIApplication的endBackgroundTask:方法。具体可以借多长时间可以通过调用backgroundTimeRemaining获知。超过可借时间后应用程序会被系统干掉。注意后台任务完成后一定要调用endBackgroundTask方法关闭后台任务,不然时间一到还是会被干掉。
三、支持多任务的APP:
第一次运行时:
1. application:didFinishLaunchingWithOptions:
2. applicationDidBecomeActive:
按下Home键时:
1. applicationWillResignActive:
2. applicationDidEnterBackground:
再次回到前台时:
1. applicationWillEnterForeground:
2. applicationDidBecomeActive:
在这些回调函数中可以监听各种系统通知来对APP进行操作。
当后台处理网络请求时注意要使用后台异步线程,当从后台恢复时系统会自己恢复到后台时的暂停状态。