1

たとえば、ユーザーまたは電話によってバックグラウンドに置かれた後、ゲームを正しく動作させようとしているときに、少し問題が発生しました。

私のアプリには GameView と呼ばれる SurfaceView クラスがあり、ゲームに必要なすべての描画を行う onDraw() メソッドと 2 つのスレッド (1 つは onDraw() を呼び出すため、もう 1 つはゲームのロジックに必要な計算を行うため) を備えています。

onPause() と onResume() の実装に成功しました。(戻るボタンが押されたときに両方のスレッドを一時停止し、ユーザーが AlertDialog でキャンセルした後に再開しました。)

onStop() が呼び出されたときに、同じ方法でゲームを一時停止したいと思います。両方のスレッドを一時停止し、キャラクターの場所をsavedInstanceStateに保存しましたが、アプリを再度起動すると、メソッドが呼び出されません(Logcatで確認しました)。最初に onRestart() を呼び出し、次に onStart() を呼び出し、次に onResume() を呼び出す必要があると思いますが、それは起こりません。私は何を間違っていますか?

(コードの問題ではなく、ライフサイクルを理解していない私の問題のように見えるため、コードを含めませんでした。必要に応じて、要求された部分を投稿します。)

4

0 に答える 0