- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
RootViewController *rootController=[[RootViewControlleralloc] init];
rootController.title = @"Root";
navController = [[UINavigationControlleralloc] initWithRootViewController:rootController];
[rootController release];
[self.windowaddSubview:navController.view];
[self.windowmakeKeyAndVisible];
//檢測是否支援多任務.
UIDevice* device = [UIDevicecurrentDevice];
BOOL backgroundSupported =NO;
if ([devicerespondsToSelector:@selector(isMultitaskingSupported)]) {
backgroundSupported = device.multitaskingSupported;
NSLog(@"background supported:%d", backgroundSupported);
}
return YES;
}
如果支援,則會列印1,否則列印0.
iOS4以前的版本作業系統不支援多任務,因而應用一旦離開前台foreground,即被終止。
iOS4及以後的版本支援多任務,但也有某些運行iOS4版本系統但是不支援多任務的裝置的情況。支援多任務的系統,當應用離開前台時,會短暫切入inactive狀態,然後切入後台background狀態。在後台時若不處理事件,則稍後不久便被掛起,即進入suspended狀態。
之所以不退出是為了方便下次再次啟動應用時能很快速的啟動。
之所以要掛起是為了減少功耗。