为什么只调用第一个 activity 的 `onDestroy`,而不调用其他活动?

Why only the first activity's `onDestroy` is called, not other activities?

(查了很多,似乎没有确切的答案。)

假设有一个应用程序。我们可以按下一个按钮来启动另一个 activity.

像这样:Activity1 -> Activity2 -> Activity3

如果我们使用 'back' 按钮,它会调用 finish(),因此每个 activity 的 onDestroy() 都会被调用。

但是, 如果我们关闭应用程序(通过按下 'overview' 按钮然后滑动应用程序),

只有 Activity1onDestroy() 被调用。

  1. 为什么其他活动的onDestroy()没有调用?
  2. 这是否意味着其他活动 活动 直到系统杀死它们? (如果系统资源足够,它们不被销毁?)

理想情况下,当您从 overview 强行关闭 App 时,它会杀死整个应用程序进程并且所有 activities 都被销毁,并且您的 activity 堆栈根(这是 ActivityA) onDestroy 方法被调用,对于其他 activitiesmethod 不会被触发,但 stack 本身会随着过程被销毁。一旦进程被销毁,一切都将不复存在。