0

アプリに問題があります。キャンバスに描画するための SurfaceHolder があります。
surfaceCreated メソッドの下で、thread.start(); を呼び出します。
surfaceDestroyed メソッドの下で、thread.join(); を呼び出します。
アプリを実行してホーム キーを押すと、メソッドが呼び出されますsurfaceDestroyed

問題は、後でアプリを再度実行しようとすると、スレッドが既に開始されているという例外が発生することです。どうしてこれなの?を使用して、スレッドが既に実行されているかどうかをテストしていますisAlive()thread.join行をに置き換える必要がありthread.waitますか?
もしそうなら、スレッドを再開するのではなく、どうすればスレッドを再開できsurfaceCreatedますか?

4

1 に答える 1

1

まず、waitメソッドによってスレッドがハングすることはありません。
2 番目 -joinスレッドが終了するのを待ちます。
3 番目 - 新しいスレッドを作成し、同じスレッドを実行しようとしないことを検討します。

于 2011-08-17T16:17:26.513 に答える