iOS学习之详解AppDelegate
AppDelegate,
類似于監(jiān)聽接口。 用個很簡單的例子說:ios系統(tǒng)會控制每個程序的開始和結(jié)束。但是ios又不知道每個程序的開始需要運行成么代碼,結(jié)束需要運行什么代碼。這個時候,ios就制定了一個規(guī)則:如果你是我的代理程序,那么我在開始的時候就會運行你里面的– applicationDidFinishLaunching方法,我會在結(jié)束的時候運行你的– applicationWillTerminate方法,這是UIApplicationDeligate定義的接口。
//狀態(tài):應(yīng)用程序開始加載
//經(jīng)常用來存放當(dāng)應(yīng)用程序加載時想要顯示的內(nèi)容.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
NSLog(@"%s",__FUNCTION__);
return YES;
}
//當(dāng)應(yīng)用程序?qū)⒁M(jìn)入非活動狀態(tài)執(zhí)行,在此期間,應(yīng)用程序不接受消息或事件,比如來電
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"應(yīng)用程序?qū)⒁M(jìn)入非活動狀態(tài),即將進(jìn)入后臺");
}
//應(yīng)用程序已經(jīng)進(jìn)入后臺運行
//使用該方法釋放共享資源,保存用戶數(shù)據(jù),讓timer無效,存儲當(dāng)前應(yīng)用程序狀態(tài)為下次恢復(fù),如果你的應(yīng)用程序支持后臺,這個方法將會替代applicationWillTerminate:當(dāng)用戶退出;
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"如果應(yīng)用程序支持后臺運行,則應(yīng)用程序已經(jīng)進(jìn)入后臺運行");
}
//應(yīng)用程序?qū)⒁M(jìn)入活動狀態(tài)執(zhí)行
//該方法經(jīng)常用來重新喚醒進(jìn)入后臺時的任務(wù);
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"應(yīng)用程序?qū)⒁M(jìn)入活動狀態(tài),即將進(jìn)入前臺運行");
}
//應(yīng)用程序已經(jīng)進(jìn)入活動狀態(tài)
//重啟當(dāng)應(yīng)用程序不活躍狀態(tài)時暫停的任務(wù),或者開啟還沒有運行的任務(wù),如果應(yīng)用程序之前在后臺,也可以刷新一下用戶界面;
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"應(yīng)用程序已進(jìn)入前臺,處于活動狀態(tài)");
}
//應(yīng)用程序?qū)⒁顺觯ǔS糜诒4鏀?shù)據(jù)和一些退出前的清理工作,
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"應(yīng)用程序?qū)⒁顺?);
}
//當(dāng)設(shè)備為應(yīng)用程序分配了太多的內(nèi)存,操作系統(tǒng)會終止應(yīng)用程序的運行,在終止前會執(zhí)行這個方法
//通常可以在這里進(jìn)行內(nèi)存清理工作,防止程序被終止
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"系統(tǒng)內(nèi)存不足,需要進(jìn)行清理工作");
}
//當(dāng)系統(tǒng)時間發(fā)生改變時執(zhí)行
-(void)applicationSignificantTimeChange:(UIApplication *)application
{
NSLog(@"當(dāng)系統(tǒng)時間發(fā)生改變時執(zhí)行");
}
//當(dāng)程序載入后執(zhí)行
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
NSLog(@"當(dāng)程序載入后執(zhí)行");
}
關(guān)于項目里如何訪問AppDelegate? ------ 有待學(xué)習(xí);
總結(jié)
以上是生活随笔為你收集整理的iOS学习之详解AppDelegate的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf断头谷在哪(地下城与勇士)
- 下一篇: 保险基数是什么