Mediaplayer新手有关问题

Mediaplayer新手问题
我写了个视频播放器,要求是一直循环播放文件夹下的所有视频,但我这个播放器循环播一段时间后就停了,有时还死机,我写了个log看了下,内存从刚开始的200多M,到最后的10M,我找了很久也找不出我这播放器哪耗内存啊,请各位高手帮我看看我代码哪里不写的不好
package ycq.informationPublish;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import ycq.informationPublish.filehandle.PropertiesFile;


import android.app.Activity;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Debug.MemoryInfo;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

import android.widget.TextView;
import android.widget.Toast;

public class MediaActivity extends Activity implements SurfaceHolder.Callback,MediaPlayer.OnPreparedListener
{
  /** Called when the activity is first created. */
private SurfaceView surfaceView;  

  private SurfaceHolder surfaceHolder;  
  MediaPlayer mMediaPlayer;
  private List<String> listVideo=new ArrayList<String>();
  int video=0;
  private int videoWidth;
  private int videoHeight;
  private MyReceiver receiver;  
  String path="/mnt/flash/video";
  // String path="/sdcard/video";
  PropertiesFile pro=new PropertiesFile();
  BufferedWriter bos;
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.media);
  receiver = new MyReceiver();  
  IntentFilter filter = new IntentFilter();  
  filter.addAction("android.intent.action.MY_VIDEO");  
  //注册  
  registerReceiver(receiver, filter); 
  surfaceView = (SurfaceView)findViewById(R.id.videoView);  
  surfaceHolder = surfaceView.getHolder();  
  mMediaPlayer = new MediaPlayer();
  path=pro.getPath(); //获得视频文件路径
  surfaceHolder.addCallback(this);
  surfaceHolder.setFixedSize(480,800);  
  surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
  //log的存储位置
  File log=new File("/mnt/flash/log.txt"); 
  if(log.exists())
  {
  log=new File("/mnt/flash/log1.txt");
  }
  try {
bos= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(log)));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  writeToFile("start mediaActivity");//调用写log的方法
  }  
  @Override  
  public boolean onKeyDown(int keyCode, KeyEvent event) {  
  // TODO Auto-generated method stub
  if(keyCode == KeyEvent.KEYCODE_BACK)
  {
mMediaPlayer.stop();  
mMediaPlayer.release();
unregisterReceiver(receiver); 
MediaActivity.this.finish();
return true;
  } //System.exit(0);
 
  return super.onKeyDown(keyCode, event);