2010-07-10 75 views
1

據我所知,applicationWillTerminate不再在iOS4中調用,實際上。但我有這種情況:applicationWillTerminate和background:terribly confused

  • 我的有聲讀物進入背景模式,並繼續播放音頻;
  • 直到SDK的3.x版我在applicationWillTerminate中保存了聽MP3文件的點。
  • 現在我被告知在applicationWillTerminate(對於iPhone 3G)中保存此保存,並在applicationDidEnterBackground中實現相同的方法:但是這不會節省用戶在最後的點,而只是當他進入後臺時的點。

但是,哪個時刻或更好的被調用的方法,其中用戶從應用程序停靠處退出應用程序?這是否存在?

ApplicationWillTerminate在存在內存問題時被調用,但實際上我無法確定當用戶自己關閉應用程序時會發生什麼。

我再說一遍:applicationDidEnterBackground不能幫助我,因爲當用戶進入後臺模式時,他可以長時間停留在這個位置,聽取有聲讀物,當他再次啓動應用程序時,在關閉之後,我意思是說,他會發現音頻文件的位置,當他進入後臺模式...

我真的很迷茫......

感謝您的幫助!

回答

2

無論音頻是否繼續播放,您都應該在applicationWillResignActive:,applicationDidEnterBackground:中自動保存播放位置。然後把另一個保存在applicationWillTerminate。這樣無論接下來發生什麼,最後的播放位置都會被保存。下一個事件簡單地覆蓋保存的播放位置以更新它。

一個更好的選擇是讓音頻播放器對象本身在被中斷時觸發保存,例如[AVAudioPlayerDelegate audioPlayerBeginInterruption:]或類似的。它可能需要一些額外的工作,但它可以保證無論中斷的原因如何都能保存播放位置。

+0

使用音頻播放器的中斷似乎是一個很好的主意,可以解決這個問題。 +1,很好的回答! – bddckr 2010-07-10 12:50:41