我已經使用:在iOS 4.3中,當按下主頁按鈕或按下開/關按鈕時,如何區分背景模式?
(void)applicationDidEnterBackground:(UIApplication *)application {}
方法,但如果是因爲按Home按鈕或開/關按鈕,我不能區分。
由於提前,
我已經使用:在iOS 4.3中,當按下主頁按鈕或按下開/關按鈕時,如何區分背景模式?
(void)applicationDidEnterBackground:(UIApplication *)application {}
方法,但如果是因爲按Home按鈕或開/關按鈕,我不能區分。
由於提前,
使用- (void)applicationDidEnterBackground:(UIApplication *)application {}
當您的應用程序進入後臺(home鍵)和- (void)applicationWillTerminate:(UIApplication *)application
當它即將被關閉(開/關按鈕或iOS呼叫後臺隨機時間後關閉) 。
我的理解是,當你鎖定或解鎖你的iOS設備時,你的應用程序委託將分別調用- (void)applicationWillResignActive:(UIApplication *)application
和- (void)applicationDidBecomeActive:(UIApplication *)application
。鎖定和解鎖與接聽電話等中斷類似。通過點擊主頁按鈕將應用程序發送到後臺會調用不同的方法,即- (void)applicationDidEnterBackground:(UIApplication *)application
和- (void)applicationWillEnterForeground:(UIApplication *)application
。
對於開/關按鈕(或者有來電或短信):
- (void)applicationWillResignActive:(UIApplication *)application
對於Home鍵:
- (void)applicationDidEnterBackground:(UIApplication *)application
隨着applicationWillResignActive
通知,applicationDidBecomeActive
仍然會在你進入正在進入背景。但是有一種方法可以通過獲取應用程序的狀態來區分,所以請在applicationDidEnterBackground
中試試。
- (void)appHasGoneInBackground {
bool inBackground = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground;
// lockScreen state
if (!inBackground) {
// do something
}
}