0

Androidでビデオゲームを開発しています。そのために、私はゲームループとそれに関連するすべての典型的なものを使用しています. Android でのアクティビティの状態に疑問があります。

GLSurfaceView を作成するためのアクティビティが必要なため、onCreate メソッドを終了すると、onCreate -> onResume -> onStart -> onStop のように継続するアクティビティが問題です。アクティビティには何もすることがなく、作業しているのはループであるため、これらの状態を通過すると思います。しかし、私はこの動作に問題があります:

ユーザーがデバイスを「最小化」またはスタンバイ状態にしたことをどのように知ることができますか? 繰り返しますが、メソッド onStop -> onResume -> onStart がトリガーされますが、今回は最初のメソッドとどのように違いますか?

ユーザーがデバイスをスタンバイに切り替えたときにループを停止する必要がありますが、初めて起動したときは停止しません。

うまく説明できたと思います。ありがとう。

4

1 に答える 1

0

onStart の直後に onStop が実行されている場合は、何か問題があります。アクティビティは、ユーザーに表示されなくなった場合にのみ停止状態になります。あなたのコードがフォアグラウンド アクティビティとして置き換える別のアクティビティをすぐに作成しない限り、私は推測しますが、アクティビティが画面に表示されている場合、onStop は起動しないはずです。いくつかのコードは、それを診断するのに役立ちます。

onPause は、アクティビティがまだ表示されているが、再開中の別のアクティビティがある場合に発生します。ユーザーがアプリから戻ったとき、電話がかかってきたとき、画面をオフにしたときなどにゲーム データなどを保存しようとしている場合は、onPause を使用します。特定の状況で、必要なことを実行する前にシステムがアクティビティを強制終了するリスク。

アクティビティのライフサイクルの詳細については、アクティビティ ガイドを参照してください。

于 2012-11-05T22:50:01.660 に答える