これは私がやったことです:のCreateThreadで
@Override
public void surfaceCreated(SurfaceHolder arg0) {
if (thread.getState() == Thread.State.TERMINATED){
CreateThread(getHolder(),getContext());
}
thread.setRunning(true);
thread.start();
}
- あなたがスレッド=新しいMyThread(...)を持っている必要があります。
- setRunning(boolean mRun)は、実行関数を開始/停止するためにブール値を使用します(私はLunarLanderに触発されたと思います)。
onPause/onResumeを正しく使用するには、スレッドで使用する変数をスレッド内に入れないでください(LunarLanderのように)。
// Variables declarations
public MyGameThread CreateThread(...){
thread = new MyGameThread(holder, context, new Handler() {
// and so on....
});
}
あなたはonPause/onResumeを通過するときに、あなたのスレッドは破壊され、reneweledいますが、それ以外の場所の変数を置けば、あなたは後にそれらを使用し続けることができます:私はあなたがそのように行うことをお勧めします。
あなたが維持するために重要な何かを持っている場合は、このオプションのいずれかを使用します。
- SharedPreferences:XMLを作成しても、アプリの終了後も持続変数を使用して、ローカルに保存されます。
- 5~10個を超える変数を管理する場合は、SQLデータベースを使用します。この場合、前のオプションを使用するのは難しいためです。あなたはこの質問に一つまたは二つのスレッドを持っている場合、私はわからないんだ
[Androidのスレッドを一時停止/再開する方法は?](http://stackoverflow.com/questions/6776327/how-to-pause-resume-thread-in-android) – Wroclai
悲しいことに、それはうまくいかなかった。 –