2

私の最初の投稿...あなたが知っている...

クラスを作成しました:

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 などのすべてのオブジェクトを解放する方法がわかりません。

ありがとう

アスカナーン

4

2 に答える 2

1

すべてのオブジェクト変数を無効にすると、それらを収集するonDestroy()資格が得られます。System GCまたは明示的に呼び出すSystem.gc()

于 2012-07-04T12:05:04.403 に答える
0

でこれを行いますonDestroy()

ただし、これを行う必要はありませんが、良い注意事項です。Android の GC は非常にインテリジェントです。

あなたには iPhone 開発のバックグラウンドがあると思います。そのため、この質問をしています。:)

于 2012-07-04T12:23:38.870 に答える