Android Activity生命周期回顾

说起Activity的一些生命周期回调方法,面试官最喜欢问有哪些,只要是接触过Android的,几乎没有人能回答错误:
onCreate
onStart
onResume
onPause
onStop
onDestory

似乎问来问去,无非会问:

  1. 打开一个Activity后会生命周期回调序列?
  2. 按下返回键后该Activity的生命周期回调?
  3. Activity在前台时接到一个电话,该Activity的调用序列?
  4. 挂断电话后回到该Activity,序列是?

我似乎以为掌握了这些就足够应许日常生活了,直到有一点我被一位国外的工程师问到这样的问题:

启动Activity A后再启动Activity B,然后按下返回键,这两个Activity的生命周期回调序列是什么?

对于一个有着一年Android经验的人,应该不难回答从Activity A到Activity B再回到Activity A各自的回调顺序:
一、打开Activity A
A.onCreate->A.onStart->A.onResume
二、再打开Activity B时

  1. Activity B经历的生命周期回调序列:
    B.onCreate->B.onStart->B.onResume
  2. Activity A经历的生命周期回调序列:
    A.onPause->A.onStop

好了那么问题来了,A和B彼此之间是如何穿插的呢?可能性有:

  1. A.onPause->A.onStop->B.onCreate->B.onStart->B.onResume
  2. B.onCreate->B.onStart->B.onResume->A.onPause->A.onStop
  3. A.onPause->B...

在概率上有很多中可能,但是事实上两者的回调序列是确定的:
A.onPause->B.onCreate->B.onStart->B.onResume->A.onStop

你可能感兴趣的:(Android Activity生命周期回顾)