4

まず第一に、アクティビティの開始、一時停止、再開、停止についてのすばらしい説明を読みました。それは問題ありませんが、別の問題があります。

Android リファレンスのアクティビティ ライフサイクル図は、別のアクティビティを呼び出すと、呼び出し元のアクティビティに対して onPause() が呼び出され、後で他のアクティビティが終了すると、呼び出し元が onResume() を介して再開することを示しています。

したがって、最初のアクティビティが Main で、もう 1 つのアクティビティが Other である場合、サイクルは次のようになります (疑似コード)。

Main.onCreate()
Main.onStart()
Main.onResume()
// Main is running...  Then, the user clicks a button and Other comes in front.
Main.onPause()
Other.onCreate()
// Other's lifecycle goes here... Finally, the user returns back.
Main.onResume()
// Main is running again.

これは図が教えてくれることです。しかし、私の Main は最初に onStart() を取得し、次に onResume() を取得します。

何故ですか?私は何かを誤解していますか?

4

2 に答える 2

6

これは、Main アクティビティがビューから完全に消えてしまい、onStop がトリガーされ、再開時に OnStart がトリガーされるために発生しています。メインからビューを部分的に非表示にした場合、onResume しか取得できません。

ダイアグラムを見ると、onPause と onStop の間に、「アクティビティが表示されなくなった」というメッセージが表示されます...これが発生しています。

クイック リファレンスとして、アクティビティ ライフサイクルの図を以下に示します。

ここに画像の説明を入力

于 2012-05-07T16:27:03.030 に答える
1

メインアプリケーションに呼び出される理由の1つonStart()は、メインアクティビティが停止していることです。それがonStop()呼ばれています。このシナリオでは、最初に呼び出されonStart()、次にonResume()呼び出されます。

于 2012-05-07T16:26:17.893 に答える