2011-11-22 56 views
2

我寫了我的第一個iPhone應用程序,並設法進入App Store。後來我發現了一個在真實設備上發生的錯誤,但不是在我的模擬器上。我已經提交了一個修復程序(更改plist以防止應用程序在後臺運行),但我不明白爲什麼會發生。爲什麼我的iPhone應用程序在後臺繼續?

我的應用程序允許用戶錄製聲音字節,但是在錄製時他們可以使用iPhone主頁按鈕將應用程序移動到背景,然後如果他們不重新啓動手機,它可以永久記錄或者應用程序不會崩潰。

從我讀過的所有內容中獲得的印象是,這不應該發生,因爲如果您想要這樣做,您必須特別詢問背景音頻,但現在看來,您必須特意要求禁用它。

任何人都可以向我解釋這個嗎?

+0

什麼是你的問題在後臺錄製或不允許應用程序在後臺? –

+0

我的問題是我不明白爲什麼它在後臺記錄時,我沒有要求獲得許可。 – Michael

回答

1

iOS App生命週期在Apple的iOS App Programming Guide中有描述。

該應用程序有機會保存數據,並在被暫停之前停止不需要運行的事情。您可以通過使用beginBackgroundTaskWithExpirationHandler:來請求額外的時間。

如果您希望自己的應用程序在放入後臺時停止執行「正常工作」,則需要檢測應用程序狀態轉換並自行停止。

+0

因此,只要我想在後臺錄製音頻,但播放音頻是一種特殊情況,您需要爲其添加權限? – Michael

+0

在暫停之前,您只能進行約5秒的清理工作。如果你想播放音頻,你可以在'Info.plist'文件中將'UIBackgroundModes'鍵設置爲'audio'並且成爲一個長時間運行的後臺任務。 – trojanfoe

相關問題