項目是要儲存上次檔案播放的位置,我使用SharedPreferences來儲存,索引值對分別是檔案路徑和當時播放的位置。
<br /> 定義:<br /> SharedPreferences preferences = null;<br />SharedPreferences.Editor editor = null;</p><p>preferences = getSharedPreferences(TAG, Activity.MODE_PRIVATE);<br />editor = preferences.edit();<br />在onstop裡面儲存播放位置<br />@Override<br />protected void onStop() {<br />editor.putInt(filePath, currentposition);<br />// 提交儲存的結果<br />Log.e(TAG, "onStop");<br />editor.commit();<br />super.onStop();<br />}<br />在onPrepared中seekto到原來位置<br />public void onPrepared(MediaPlayer mp) {</p><p>currentposition = preferences.getInt(filePath, -1);<br />if (currentposition != -1) {<br />mUvv.seekTo(currentposition);<br />}</p><p>後面的話,我需要的是清除這些記錄,在ondestroy中清除。 值得注意的地方是清除的時候也要提交,不然的話,資料沒重新整理還是保持原來的資料,剛開始沒有注意到清除也要commit。搞得我鬱悶。。。<br />protected void onDestroy() {<br />// TODO Auto-generated method stub</p><p>if (clearshared) {<br />editor.clear();<br />editor.commit();<br />}<br />super.onDestroy();<br />}<br />