7

我想从另一个MainActivity开始。两个Activity在同一个app里,第二个Activity其实是从MainActivity启动的。所以场景是这样的:IntentActivity

  1. MainActivity 是使用 Intent 创建的
  2. MainActivity 启动 SecondActivity (但 MainActivity 尚未销毁。它只是停止)
  3. SecondActivity 以新的 Intent 启动 MainActivity(SecondActivity 未关闭)

MainActivity 未标记。我的意思是,未设置清单中 Activity 的启动模式(因此,它是默认的)。

我想知道 MainActivity 的生命周期和意图会发生什么。

Activity 是否重新创建?被onCreate()称为?然后被onCreate()调用两次,没有onDestory()?或者新的MainActivity是新创建的,会有两个MainActivity?会不会被IntentgetIntent()覆盖?

我知道Activity.onNewIntent()要求 singleTop 活动。那么在我的情况下onNewIntent()是不是叫呢?

提前致谢。

4

2 回答 2

2

Activity 是否重新创建?是否调用了 onCreate()?然后是 onCreate() 调用两次,

是的,是的,是的,因为launchMode活动的默认值是"standard". Activity使用标准 launchmode将创建一个您想要多少次的新实例。

getIntent() 中的 Intent 会被覆盖吗?

AFAIK,还是一样Intent

于 2013-05-31T04:27:11.360 回答
2

如果您为具有默认启动模式的 Activity 调用 startActivity()(即,您没有在清单或 Intent 中提及任何启动模式),则会创建该 Activity 的新实例。

例如,A 启动 B,B 再次启动 A,然后 Activity 堆栈将是 A - B - A。此时按返回键会将您带到 B,然后是 A。

您可以参考 Android 中的Tasks 和 BackStack文档。

于 2013-05-31T04:30:01.883 回答