Android活动生命周期-在onStop()之后和调用onDestory()时会发生什么

时间:2019-02-20 11:41:46

标签: android android-activity

我想问一下活动的生命周期。

如果某个活动即将到后台,或者用户按下了主页按钮,因此该应用程序本身不再可见,则会调用onStop(),但并不总是将其破坏。

1)当上述情况发生时,活动实际上发生了什么?它会移到后堆栈吗?还是其他?

2)与第一个问题特别相关-在活动已经停止但停止的那一刻尚未调用onDestroy()的情况下何时调用onDestroy()方法?

3)通常大约onDestory()-我知道onDestroy()是在系统资源不足时调用的,或者当Android为了加载另一个人而破坏人像/风景布局时调用的。何时还能调用?

1 个答案:

答案 0 :(得分:2)

1)当上述情况发生时,活动实际发生了什么?它会移到后堆栈吗?还是其他?

假设您已按下主页按钮,并且当前应用程序将被移至后台状态,那么当前应用程序活动的对象现在将存储在任务中,并且此任务具有该应用程序活动的所有对象。因此,此任务将存储在内存中,并且只有在内存不足或任何用户手动杀死应用程序或调用 finish()方法时,Android系统才会终止此任务。

2)与第一个问题特别相关-如果活动已经停止,但在停止的那一刻尚未调用onDestroy(),则何时调用onDestroy()方法?

onDestroy()仅在以下情况下被调用

  1. 用户手动杀死该应用程序。
  2. Android系统将在内存不足的地方回收内存。
  3. 在代码本身中调用 finish()时。

希望有帮助。