だから私は、私がすべてでMAT
複数を作成し続けていることを発見しましたThreads
surfaceCreate
ただし、これらのスレッドが必要だと思いますが、この方法ではViewThread
、ユーザーがアプリをナビゲートするときに の複数のインスタンスが発生し、メモリ リークが発生します。
これが発生しないように、スレッドの作成方法と処理方法を再編成するにはどうすればよいですか? または、リークの発生を防ぐにはどうすればよいですか?
@Override
public void surfaceCreated(SurfaceHolder holder) {
loading=false;
if (!mThread.isAlive()){
mThread = new ViewThread(this);
mThread.setMenuRunning(true);
mThread.start();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mThread.isAlive()){
mThread.setMenuRunning(false);
}
}
Career
ゲームのアクティビティを 5 回開いて別の場所に移動しましたが、これがMAT
surfaceDestroyed
編集:それ以来、スレッドの破壊に依存することは信頼できないことがわかりました。ここで、トリガーされた別のメソッドから適切なスレッド破壊呼び出しを呼び出しますonPause
。