释放android中的资源

时间:2012-07-04 12:03:02

标签: android resources media-player release

我的第一篇帖子......你知道......

我创建了一个类:

public class MyPanel extends SurfaceView implements SurfaceHolder,
        SurfaceHolder.Callback {
   private MediaPlayer shooting = new MediaPlayer();
   public Panel(Context context, int screenWidth, int screenHeight) {
        super(context);
    shooting = MediaPlayer
                .create(ctx, Utils.getRawResIdFromName("gunshot"));
  }
  void  anotherMethod(){
    //...
    shooting.start();
  }
//....other stuff....
 }

现在活动类的onCreate方法很简单:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            ... some stuff
    final MyPanel panel = new MyPanel(this, newWidth, newHeight);
    }
... other methods
}

我的问题是如何在用户退出活动后释放资源? 我不确定如何释放实例化的对象面板以及在其中创建的所有对象,如MediaPlayer,Graphics ....

由于

askanaan

2 个答案:

答案 0 :(得分:1)

onDestroy()中的

会使您的所有对象变量无效,这将使他们有资格System GC收集它们。或明确调用System.gc()

答案 1 :(得分:0)

onDestroy()

中执行此操作

但是没有必要这样做,而是一个很好的prectice。因为Android的GC非常聪明。

我认为你有iPhone开发背景,这就是你问这个问题的原因。 :)