二.SoundRecorder類介紹
先介紹RemainingTimeCalculator類。它負責計算儲存介質剩餘空間能夠存放多長的錄音檔案。其中的timeRemaining()函數負責計算剩餘時間,取檔案大小限制和空間大小限制的較小的一個來計算剩餘時間。
mCurrentLowerLimit = result < result2
? DISK_SPACE_LIMIT : FILE_SIZE_LIMIT;
SoundRecorder類本身是一個Activity。該類負責實現一切向使用者顯示的部分:包括介面,對各種操作的響應。錄音、儲存錄音、播放錄音等功能通過調用Recorder類中的方法實現。在SoundRecorder中包含一個Recorder類的對象mRecorder。
作為Activity類的子類,SoundRecorder重載了父類的多個函數:
onCreate() onDestroy()(從啟動到完全銷毀)
onStart() onStop()(從可視到不可視)
onPause() (從可操作到不可操作)
這幾個函數包含Activity在不同狀態間切換時需要的操作。這裡指的狀態切換是因為SoundRecorder程式之外的影響,如手機休眠、程式掛起、從SoundRecorder程式切換到其他程式等。
此外SoundRecorder還重載了幾個函數:
onConfigurationChanged();橫豎屏切換時,重新整理UI介面。
onSaveInstanceState(Bundle outState);將Recorder的狀態儲存到Bundle,實際調用的是上面提到的saveState()函數。當SoundRecorder因為某些原因需要中斷時,狀態被儲存,然後在重啟時由onCreate()中的相應代碼讀取Bundle中的狀態值,回複中斷前程式的狀態,實際調用的是上面提到的restoreState()函數。
onPrepareOptionsMenu()、onOptionsItemSelected(),這兩個函數負責實現menu鍵功能。
摘自 LuoXianXiong,您的夥伴