2011-11-21 76 views
0

如何模擬applicationWillResignActive被調用?如何模擬applicationWillResignActive消息?

鎖定屏幕,進入主菜單,模擬電話 - 沒有任何幫助。

在情況下,我希望事情不會發生,讓我告訴你更多:我訂閱了這個消息,而且當這種情況發生,希望通知發送到下面的方法所列:

UIApplication *app = [UIApplication sharedApplication]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
       selector:@selector(applicationWillResignActive:) 
       name: UIApplicationWillResignActiveNotification object:app]; 

回答

1

你代碼是有效的,它適用於我。鎖定屏幕或點擊主頁按鈕將導致發佈此通知。

*(一個需要注意的是如果您的設備不支持多任務處理,或者如果你有「Application does not run in background」屬性在*info.plist設置爲yes。在這種情況下,它會直接進入「」通知)

所以除了那裏有兩種可能性:

1)您的addObserver代碼沒有被調用,即。這是錯誤的方法。

要測試試試這個:

UIApplication *app = [UIApplication sharedApplication]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(applicationWillResignActive:) 
              name:UIApplicationWillResignActiveNotification 
              object:app]; 
NSLog(@"Observer added"); 

2)觀察員方法沒有被正確調用。這需要與at選擇器相同的方法。

要測試試試這個:

-(void)applicationWillResignActive:(NSNotification *)notification{ 
    NSLog(@"applicationWillResignActive"); 
} 
  • 只是作爲一個附加的點,如果你想在行動中看到這些通知的被稱爲和時間。在AppDelegate類中,將NSLog(@"%@", NSStringFromSelector(_cmd));行放在-application...的每個方法中,並在調用它們時將其記錄下來。這是一個很好的手中去了解他們。
+0

如何最好地找到「應用程序不在後臺運行」屬性? – JAM

+0

單擊左側窗格中的項目。然後在下一個窗格中選擇您的目標(而不是您的項目)。然後單擊信息選項卡(缺少更好的描述)。並查看「自定義iOS目標媒體資源」子標題。它會在那裏。或..你可以挖掘你的項目文件夾,並找到文件yourProjectNameHere-info.plist。 – NJones

+0

謝謝你接受我的回答,但我仍然很好奇,「應用程序不在後臺運行」屬性是問題所在? – NJones

相關問題