7

私は自分の他の中でMainActivity新しいことを始めたいです。2 つのアクティビティは同じアプリ内にあり、2 番目のアクティビティは実際には MainActivity から開始されます。したがって、シナリオは次のようになります。IntentActivity

  1. MainActivity はインテントで作成されます
  2. MainActivity は SecondActivity を開始します (ただし、MainActivity はまだ破棄されていません。停止されているだけです)
  3. SecondActivity は新しい Intent で MainActivity を開始します (SecondActivity は閉じられません)

MainActivity にはフラグが立てられていません。つまり、マニフェストのアクティビティの起動モードは設定されていません (つまり、デフォルトです)。

MainActivity のライフサイクルと意図がどうなるか知りたいです。

アクティビティは再作成されますか? onCreate()呼ばれる?次に、 ?onCreate()なしで 2 回呼び出されます。onDestory()または、新しい MainActivity が新しく作成され、MainActivity が 2 つになりますか? インテントはgetIntent()上書きされますか?

Activity.onNewIntent()が singleTop アクティビティで呼び出されることは知っています。その後、私の状況onNewIntent()では呼び出されませんか?

前もって感謝します。

4

2 に答える 2

2

アクティビティは再作成されますか? onCreate() は呼び出されますか? 次に、onCreate() が 2 回呼び出され、

はい、はい、はい。launchModeアクティビティのデフォルトは です"standard"標準Activityを使用すると、必要な回数だけ新しいインスタンスが作成されます。 launchmode

getIntent() のインテントは上書きされますか?

私の知る限り、それはまだ同じIntentです。

于 2013-05-31T04:27:11.360 に答える
2

デフォルトの起動モードでアクティビティに対して startActivity() を呼び出すと (つまり、マニフェストでもインテントでも起動モードについて言及していません)、アクティビティの新しいインスタンスが作成されます。

たとえば、A が B を起動し、再び B が A を起動した場合、アクティビティ スタックは A - B - A になります。この時点で戻るキーを押すと、B の次に A に移動します。

Android からタスクと BackStack のドキュメントを参照できます。

于 2013-05-31T04:30:01.883 に答える