项目是要保存上次文件播放的位置,我使用SharedPreferences来保存,键值对分别是文件路径和当时播放的位置。 定义: SharedPreferences preferences = null; SharedPreferences.Editor editor = null; preferences = getSharedPreferences(TAG, Activity.MODE_PRIVATE); editor = preferences.edit(); 在onstop里面保存播放位置 @Override protected void onStop() { editor.putInt(filePath, currentposition); // 提交保存的结果 Log.e(TAG, "onStop"); editor.commit(); super.onStop(); } 在onPrepared中seekto到原来位置 public void onPrepared(MediaPlayer mp) { currentposition = preferences.getInt(filePath, -1); if (currentposition != -1) { mUvv.seekTo(currentposition); } 后面的话,我需要的是清除这些记录,在ondestroy中清除。 值得注意的地方是清除的时候也要提交,不然的话,数据没刷新还是保持原来的数据,刚开始没有注意到清除也要commit。搞得我郁闷。。。 protected void onDestroy() { // TODO Auto-generated method stub if (clearshared) { editor.clear(); editor.commit(); } super.onDestroy(); }