![](/img/trans.png)
[英]Does Crashlytics handle EXC_RESOURCE when it makes the app crash (e.g. CPU_FATAL)
[英]iOS CPU_FATAL 0% in background
我正在為我的應用程序播放背景音頻。 但是有些用戶警告我一個奇怪的錯誤。 在后台運行1個小時或更長時間后,該應用已被iOS殺死,您需要再次啟動它。
通常情況下,這是由於互聯網連接不良而引起的,當時該應用程序必須經常創建后台任務並使用它,直到下載足夠的數據以再次開始播放為止。
我知道后台任務的時間限制,這不是問題。 這是來自用戶設備的崩潰日志的一部分:
Exception Type: EXC_RESOURCE
Exception Subtype: CPU_FATAL
Exception Message: (Limit 80%) Observed 0% over 60 sec
Triggered by Thread: 0
最奇怪的是第三行。 如果0%低於80%的限制,為什么會例外?
通過象征線程0(它是主線程)的堆棧跟蹤,我發現它發生在方法- [NSFileManager fileExistsAtPath:]
。 以前,它發生在方法+ [UIImage imageWithContentsOfFile:]
。 那么,什么可以凍結對iOS后台文件系統的訪問?
也:
從蘋果文檔:
您可以使用任何系統音頻框架來處理背景音頻內容,並且使用這些框架的過程沒有改變。 (對於通過AirPlay播放視頻,您可以使用Media Player或AV Foundation框架來演示視頻。)由於在播放媒體文件時應用未處於掛起狀態,因此回調在后台運行時正常運行。 但是,在回調中,您應僅執行提供數據以進行回放的必要工作。 例如,流音頻應用程序將需要從其服務器下載音樂流數據,並將當前的音頻樣本推出以進行回放。 應用程序不應執行與播放無關的任何無關緊要的任務。
因此,如果您執行諸如下載圖像和保存圖像之類的操作,則會違反此規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.