为什么只调用第一个 activity 的 `onDestroy`,而不调用其他活动?
Why only the first activity's `onDestroy` is called, not other activities?
(查了很多,似乎没有确切的答案。)
假设有一个应用程序。我们可以按下一个按钮来启动另一个 activity.
像这样:Activity1 -> Activity2 -> Activity3
如果我们使用 'back' 按钮,它会调用 finish()
,因此每个 activity 的 onDestroy()
都会被调用。
但是, 如果我们关闭应用程序(通过按下 'overview' 按钮然后滑动应用程序),
只有 Activity1
的 onDestroy()
被调用。
- 为什么其他活动的
onDestroy()
没有调用?
- 这是否意味着其他活动 活动 直到系统杀死它们?
(如果系统资源足够,它们不被销毁?)
理想情况下,当您从 overview
强行关闭 App
时,它会杀死整个应用程序进程并且所有 activities
都被销毁,并且您的 activity 堆栈根(这是 ActivityA
) onDestroy
方法被调用,对于其他 activities
,method
不会被触发,但 stack
本身会随着过程被销毁。一旦进程被销毁,一切都将不复存在。
(查了很多,似乎没有确切的答案。)
假设有一个应用程序。我们可以按下一个按钮来启动另一个 activity.
像这样:Activity1 -> Activity2 -> Activity3
如果我们使用 'back' 按钮,它会调用 finish()
,因此每个 activity 的 onDestroy()
都会被调用。
但是, 如果我们关闭应用程序(通过按下 'overview' 按钮然后滑动应用程序),
只有 Activity1
的 onDestroy()
被调用。
- 为什么其他活动的
onDestroy()
没有调用? - 这是否意味着其他活动 活动 直到系统杀死它们? (如果系统资源足够,它们不被销毁?)
理想情况下,当您从 overview
强行关闭 App
时,它会杀死整个应用程序进程并且所有 activities
都被销毁,并且您的 activity 堆栈根(这是 ActivityA
) onDestroy
方法被调用,对于其他 activities
,method
不会被触发,但 stack
本身会随着过程被销毁。一旦进程被销毁,一切都将不复存在。