AppDelegate

AppDelegate為整個(gè)應(yīng)用的一個(gè)代理,提供程序啟動(dòng)、退出等類似監(jiān)控的接口。

IOS AppDelegate方法全解


1.當(dāng)應(yīng)用程序?qū)⒁M(jìn)入非活動(dòng)狀態(tài)執(zhí)行,在此期間,應(yīng)用程序不接受消息或事件,比如來電
    - (void)applicationWillResignActive:(UIApplication *)application

    {

        NSLog(@"應(yīng)用程序?qū)⒁M(jìn)入非活動(dòng)狀態(tài),即將進(jìn)入后臺(tái)");

    }
2.應(yīng)用程序已經(jīng)進(jìn)入后臺(tái)運(yùn)行
    - (void)applicationDidEnterBackground:(UIApplication *)application

    {

        NSLog(@"如果應(yīng)用程序支持后臺(tái)運(yùn)行,則應(yīng)用程序已經(jīng)進(jìn)入后臺(tái)運(yùn)行"); //如果需要退出后臺(tái),則在這里加上:exit(0);

    }
3.應(yīng)用程序?qū)⒁M(jìn)入活動(dòng)狀態(tài)執(zhí)行
    - (void)applicationWillEnterForeground:(UIApplication *)application

    {

        NSLog(@"應(yīng)用程序?qū)⒁M(jìn)入活動(dòng)狀態(tài),即將進(jìn)入前臺(tái)運(yùn)行");

    }
4.應(yīng)用程序已經(jīng)進(jìn)入活動(dòng)狀態(tài)
    - (void)applicationDidBecomeActive:(UIApplication *)application

    {

        NSLog(@"應(yīng)用程序已進(jìn)入前臺(tái),處于活動(dòng)狀態(tài)");

    }
5.應(yīng)用程序?qū)⒁顺?,通常用于保存?shù)據(jù)和一些退出前的清理工作
    - (void)applicationWillTerminate:(UIApplication *)application

    {

        NSLog(@"應(yīng)用程序?qū)⒁顺觯ǔS糜诒4鏀?shù)據(jù)和一些退出前的清理工作");

    }
6.當(dāng)設(shè)備為應(yīng)用程序分配了太多的內(nèi)存,操作系統(tǒng)會(huì)終止應(yīng)用程序的運(yùn)行,在終止前會(huì)執(zhí)行這個(gè)方法,通常可以在這里進(jìn)行內(nèi)存清理工作,防止程序被終止
    -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application

    {

        NSLog(@"系統(tǒng)內(nèi)存不足,需要進(jìn)行清理工作");

    }
7.當(dāng)系統(tǒng)時(shí)間發(fā)生改變時(shí)執(zhí)行
    -(void)applicationSignificantTimeChange:(UIApplication *)application

    {

        NSLog(@"當(dāng)系統(tǒng)時(shí)間發(fā)生改變時(shí)執(zhí)行");

    }
8.推送消息時(shí),獲取設(shè)備的tokenid
    -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    {

        NSLog(@"%@",deviceToken);

    }
9.tokenid獲取失敗時(shí),做相應(yīng)處理
    - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

    {

        NSLog(@"fail to register for remoteNotifications: %@", [err description]);

    }
10.接收到推送消息處理
    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

        //設(shè)置icon上的標(biāo)記數(shù)字設(shè)置為0;

        //application.applicationIconBadgeNumber = 0;

        NSLog(@"%@",userInfo);

    }
11.當(dāng)程序載入后執(zhí)行
    -(void)applicationDidFinishLaunching:(UIApplication *)application

    {

        NSLog(@"當(dāng)程序載入后執(zhí)行");

    }

系統(tǒng)啟動(dòng)代理
//創(chuàng)建UIWindos
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//初始化應(yīng)用系統(tǒng)需要顯示的第一個(gè)頁面  
ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
//配置window窗口的rootViewController實(shí)例
self.window.rootViewController = vc;
 
[self.window makeKeyAndVisible];  
return YES; 

@implementation AppDelegate

/**
*  app啟動(dòng)完畢后就會(huì)調(diào)用
*  在啟動(dòng)圖標(biāo)消失后進(jìn)入該方法,并且程序進(jìn)入后臺(tái)后,再次進(jìn)入時(shí)不再調(diào)用
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   NSLog(@"程序已經(jīng)啟動(dòng)...");
   return YES;
}

/**
*  程序失去焦點(diǎn)后執(zhí)行,一般數(shù)據(jù)保存操作在這里執(zhí)行
*/
- (void)applicationWillResignActive:(UIApplication *)application {
   NSLog(@"程序?qū)⒁ソ裹c(diǎn)...");
}

/**
*  app進(jìn)入后臺(tái)的時(shí)候調(diào)用 注意:進(jìn)入后臺(tái)時(shí)先失去焦點(diǎn)再進(jìn)入后臺(tái)
*/
- (void)applicationDidEnterBackground:(UIApplication *)application {
   NSLog(@"程序已經(jīng)進(jìn)入后臺(tái)...");
}

/**
*  app進(jìn)入前臺(tái)的時(shí)候調(diào)用
*/
- (void)applicationWillEnterForeground:(UIApplication *)application {
   NSLog(@"程序?qū)⒁M(jìn)入前臺(tái)...");
}

/**
*  程序被激活(獲得焦點(diǎn))后執(zhí)行 注意:先進(jìn)入前臺(tái)再獲取焦點(diǎn)<span style="font-family: Arial, Helvetica, sans-serif;">,一般數(shù)據(jù)恢復(fù)操作在這里執(zhí)行</span>
*/
- (void)applicationDidBecomeActive:(UIApplication *)application {
   NSLog(@"程序已經(jīng)獲得焦點(diǎn)...");
}

/**
*  程序終止時(shí)執(zhí)行
*/
- (void)applicationWillTerminate:(UIApplication *)application {
   NSLog(@"程序?qū)⒁K止...");
}

/**
*  清除不需要再使用的內(nèi)存
*/
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
   NSLog(@"applicationDidReceiveMemoryWarning");
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容