我知道「applicationWillResignActive」將在您點擊主頁按鈕或睡眠/喚醒按鈕時被調用。當發生中斷(如本地呼叫)時也會調用它。但是,我怎樣才能確定這個方法中的哪一個結果並且執行一些不同的實現呢?我可以檢測到導致「applicationWillResignActive」調用的原因嗎?
1
A
回答
4
您不能直接找出所有原因,但可以縮小一點。
如果按下主頁按鈕並且應用程序被髮送到後臺,您的應用程序將在您的UIApplicationDelegate上收到applicationDidEnterBackground:
調用。請注意,您將在撥打applicationWillResignActive:
後收到此消息,因此可能無法幫助您。
你也可以註冊一個監聽音頻中斷
AudioSessionInitialize (
NULL, // 'NULL' to use the default (main) run loop
NULL, // 'NULL' to use the default run loop mode
audioSessionInteruptionListener, // a reference to your interruption callback
self // data to pass to your interruption listener callback
);
如果audioSessionInteruptionListener
被調用,狀態kAudioSessionBeginInterruption
applicationWillResignActive:
之前,那麼你知道中斷是由電話或報警引起的。我認爲你沒有更多的信息。
編輯
其實,我覺得你可以去哪怕是一點點進一步分辨電話呼叫VS報警中斷。現在這還沒有經過測試,只是給出更多調查的起點。
我記得有一個註冊的回調陷阱音頻路由,並且當接到電話時,路由音頻從揚聲器/耳機變爲無到接收器。所以我想你可以使用上面描述的方法來捕獲AudioInterruption,並捕獲音頻路由變化。如果音頻路由變成接收者,則中斷是電話呼叫。否則,這是另一回事,就像鬧鐘。
我的目標是iOS 5.0,因此它可能不適用於以前的版本,您將不得不使用該文檔進行確認。
相關問題
- 1. Android檢測導致onPause的原因
- 2. ng2更改檢測 - 可能導致'ApplicationRef_.prototype.tick()'週期性調用的原因
- 3. iphone applicationWillResignActive - 獲得原因
- 4. 可能導致NoReverseMatch錯誤的原因
- 5. 我們可以在iphone模擬器中檢查applicationwillresignActive嗎?
- 6. 我可以在mshtml.IHTMLElement.click()調用中檢測到故障嗎?
- 7. gzopen()導致ENOMEM的原因
- 8. 什麼原因導致SocketTimeoutException
- 9. 什麼原因導致HttpMessageNotWritableException?
- 10. 什麼原因導致com.aerospike.client.AerospikeException:java.io.EOFException?
- 11. ASP.Net Mvc - 視圖可以調用可能導致數據檢索的函數嗎?
- 12. 我可以從_pre_put_hook導致失敗嗎?
- 13. 檢測EXCEPTION_FLT_STACK_CHECK的原因
- 14. 我如何找到導致EETypeLoadException的原因?
- 15. 如果.text()在按鈕上被調用,我可以檢測嗎?
- 16. 我可以通過截圖檢測導入的ALAsset照片嗎?
- 17. 你如何找出導致'/ login'被調用的原因?
- 18. 哪個原因可以導致索引在oracle中進入不可用狀態
- 19. 我可以得到導致異常的代碼行嗎?
- 20. 我如何理解導致應用程序崩潰的原因?
- 21. 什麼原因導致「對非對象調用... getCalendarListFeed()」錯誤?
- 22. 如何判斷是什麼原因導致drawRect被調用?
- 23. 調用選擇器時,什麼原因導致「EXC_BAD_ACCESS」?
- 24. 導致對話ID增加的原因
- 25. 導致ServiceActivationException的原因是什麼?
- 26. 導致此ArrayIndexOutOfBoundsException的原因是什麼?
- 27. 導致ArrayIndexOutOfBoundsException的原因是什麼?
- 28. 導致此ArrayIndexOutOfBoundsException的原因是什麼?
- 29. 導致PHP鎖定文件的原因
- 30. 導致此Android RuntimeException的原因
謝謝你的回答,這很清楚。 – NewXcoder