2011-04-13 29 views
0

此事件狀態的蘋果文檔:ios 4.3.1 applicationWillResignActive行爲錯誤?

這個方法被調用,讓你的應用程序 知道,它即將從活動 移動到不活動 狀態。這可能發生在某些 類型的臨時中斷(例如 作爲傳入電話或SMS 消息)或當用戶退出應用程序並且它開始 轉換到後臺狀態。 應用程序處於非活動狀態 將繼續運行,但不會將 傳入的事件分派給響應者。

我看到的行爲與最後一句不一致。如果我在XCode調試器下運行一個應用程序來收集並記錄數據以響應定時器觸發,則如果按睡眠/喚醒按鈕使設備進入睡眠狀態,數據收集和日誌記錄將無限期地繼續。但是,如果我「正常」運行應用程序(即不在XCode調試器中),那麼數據收集和記錄在設備睡眠後幾乎立即停止。

蘋果的文檔也說(重點煤礦)

你應該使用這種方法來暫停正在進行的 任務,禁用定時器和節流下來的OpenGL ES的幀速率。

但並沒有真正解釋爲什麼應該禁用定時器。

我想弄清楚觀察到的行爲(不活動狀態似乎阻止我的計時器和/或可能是整個應用程序)是一個錯誤或不是,或者如果文檔錯誤地運行的應用程序不活動,或者爲什麼調試器下的應用程序的行爲與「真實世界」行爲不同。

任何幫助或澄清,將不勝感激。

回答

0

閱讀關於各種application states的深入瞭解。應用程序通常不會處於非活動狀態很長時間,但切換到背景狀態或可疑狀態。

+0

Caleb,我讀過那篇文檔,其中指出:「任何時間段[應用程序]保持不活動狀態的唯一時間是用戶鎖定屏幕時」,這是我在此處描述的情況。 – 2011-04-13 16:54:13

+0

雖然沒有說「任何一段時間」。我不認爲你可以指望在任何情況下保持不活動。 – Caleb 2011-04-13 16:59:49

0

我(!終於)發現,似乎可以解釋我所看到的一個線程:

What happens to an iPhone app when iPhone goes into stand-by mode?

它出現在的行爲是不依賴於Xcode中的差異,但反而因爲設備通過USB連接(以允許調試),所以iOS在屏幕鎖定後不會睡眠,因爲它已插入並充電。

如果設備未插入,則在屏幕鎖定(約20秒)後的很短時間內,設備將處於休眠狀態:主CPU上的所有活動都會暫停。

因此,蘋果文檔沒有錯,只是不完整,沒有說明發生無效 - >睡眠轉換。

(我應該刪除這個問題嗎?)

相關問題