为什么 activity 通过 onCreate 而不是 onRestart 回到前面?

Why activity come back to front via onCreate rather than onRestart?

我想做的是在设备重启时通过在 BroadCastReceiver 侦听 BOOT_COMPLETED 事件中发送意图来启动 Activity。 Activity 在其 onCreate 事件处理程序中有条件 moveTaskToBack。 Activity 是可启动的,也是唯一的 Activity App。

  1. 当我重新启动设备时,应用程序 运行ning 并且我可以看出 Activity 从屏幕上隐藏了。从 logcat 打印一条 'onCreate' 消息以指示 onCreate 事件发生。然后我单击屏幕中的应用程序图标,期望 Activity 从后面出现,因为 onCreate 应被省略,moveTaskToBack 不应 运行。但是 onCreate 事件处理程序仍然执行并且 Activity 再次隐藏。
  2. 我以另一种方式从 BroadCastReceiver 中删除开始 Activity,只需单击屏幕中的图标打开应用程序。首先点击应用程序开始 运行ning 和 Activity 隐藏,当我再次点击图标时,Activity 出现。从 logcat 开始,第一个事件是 onRestart,这是预期的。

我不确定这两种带回方式有什么不同Activity?为什么在第一种情况下 onCreate 发生两次应用 BroadcastReceiver?

干杯!

我现在知道由广播接收器启动的 activity 在一个堆栈中,而由发射器启动的 activity 与 class 一样在另一个堆栈中堆。因此,为什么当我点击 App 图标桌面时,onCreate 事件再次发生,为 App 创建一个新堆栈和 brand-new activity。

感谢 xvlcw 的大力帮助...