2012-02-28 9 views
0

私は2つのアクティビティを持つゲームを持っています:1つはスタートアップ、もう1つはゲームへのボタンガイドユーザーです。1つのアクティビティを保持する方法は?

ゲームでは、私の戻るを押してスタートアップに戻ります。 onCreate()を呼び出さずにボタンを再度クリックしたときに前のゲームを開始する方法は?

ゲームはstartActivity()によって開始されます。

多くの仕事が行われていますので、ゲームの状態を再初期化せずに保ちたいです。

私はFLAG_ACTIVITY_REORDER_TO_FRONTでsingleTop/singleTaskとインテントフラグを試しました。どちらもGameのonCreate()をトリガして再び呼び出されます。

ありがとうございました。

答えて

1

デフォルトでは、[戻る]ボタンはアクティビティを終了するため、「戻る」ことはできません。ゲームの状態を保存してから、ユーザーがゲームに再入力したときにonCreate内からゲームの状態を復元する必要があります。

また、戻るボタンを無効にするだけで、ゲーム自体が上から飛び出さないように、オプションのポップアップリスト(終了、新しいゲーム、高得点の表示など)を表示できます。戻るボタン(またはゲームの再開)をもう一度押すと、そのポップアップメニューが削除され、 "onCreate()"の代わりに "onResume()"が呼び出されます(Activity Lifecycleによる)。

+0

バックボタンを無効にすると、あなたの上のアクティビティを開始することもできます。しかし、それは本当に混乱するでしょう。 ステータスを保持するためのもう1つのソリューションは、カスタムandroid.app.Applicationの使用です。それはあらゆる活動の前に作成され、常に生きています。 – Salw

+0

ありがとうございます。わかった。実際、Gameはネットワーク接続スレッドを維持しているので、onDestroy()で終了しなければなりません。 – pengguang001

0

これは常にonCreateを呼び出しますが、onPreateを保存してからonCreateとonResumeに再作成すると、状態を再作成するように調整できます。詳細は、アクティビティライフサイクルのドキュメントを参照してください。

関連する問題