appDelegate中的委託協議方法以及使用觀察者模式擷取其觸發方法

來源:互聯網
上載者:User

標籤:



//當應用程式將要進入非使用中執行,在此期間,應用程式不接受訊息或事件,比如來電  - (void)applicationWillResignActive:(UIApplication *)application  {      NSLog(@"應用程式將要進入非使用中,即將進入後台");  }    //應用程式已經進入後台運行  - (void)applicationDidEnterBackground:(UIApplication *)application  {      NSLog(@"如果應用程式支援後台運行,則應用程式已經進入後台運行");  如果需要退出後台,則在這裡加上:exit(0);}    //應用程式將要進入活動狀態執行  - (void)applicationWillEnterForeground:(UIApplication *)application  {      NSLog(@"應用程式將要進入活動狀態,即將進入前台運行");  }    //應用程式已經進入活動狀態  - (void)applicationDidBecomeActive:(UIApplication *)application  {      NSLog(@"應用程式已進入前台,處於活動狀態");  }    //應用程式將要退出,通常用於儲存書架喝一些推出前的清理工作,  - (void)applicationWillTerminate:(UIApplication *)application  {      NSLog(@"應用程式將要退出,通常用於儲存書架喝一些推出前的清理工作");  }    //當裝置為應用程式分配了太多的記憶體,作業系統會終止應用程式的運行,在終止前會執行這個方法  //通常可以在這裡進行記憶體清理工作,防止程式被終止  -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application  {      NSLog(@"系統記憶體不足,需要進行清理工作");  }    //當系統時間發生改變時執行  -(void)applicationSignificantTimeChange:(UIApplication *)application  {      NSLog(@"當系統時間發生改變時執行");  }    //當程式載入後執行  -(void)applicationDidFinishLaunching:(UIApplication *)application  {      NSLog(@"當程式載入後執行");  }  

介紹完appdelegate中的方法後,回到我想說的地方

如果在一個viewcontroller中觸發了這些方法(比如按home鍵盤,此程式會進入後台,觸發

applicationWillResignActive、
applicationDidEnterBackground

方法),這時候我們不可能在回到appdelegate中寫邏輯處理,所以,我們可以用觀察者模式來處理這個問題:

- (void)viewWillAppear:(BOOL)animated {    [super viewWillAppear:animated];       [[NSNotificationCenter defaultCenter]addObserver:self                                            selector:@selector(AA)                                                name:UIApplicationDidFinishLaunchingNotification                                              object:nil];}

這裡接受到的name可以有很多:

UIApplicationDidFinishLaunchingNotification

UIApplicationDidEnterBackgroundNotification

....appdelegate中對應的方法都有

appDelegate中的委託協議方法以及使用觀察者模式擷取其觸發方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.