当一个activity启动另一个activiy,它们同时都经历生命周期的转换。这时候第一个activity暂停(onPause()
)然后停止(onStop()
)(如果它仍然在后台可见的话,这个activity不会停止(onStop()
)),同时另一个activity被创建。如果把这些activity的活动数据保存起来的话对于理解两个activity的协调工作非常重要,真实的情况并不是第一个activity在第二个activity启动之后完全停止了,而是第二个activity启动和第一个activity停止的进程重叠了。
activity生命周期回调的方法定义的非常好,尤其是当两个activity在执行一个启动另一个的时候。它们的执行顺序如下:
Activiy A执行onPause()
方法。
Activity B顺序的执行onCreate()
,onStart()
,和onResume()
方法。(Activity B此时已获取了用户焦点。)
然后如果Activity A不再可见了的话,它的onStop()
方法就会执行。
这种可预见的生命周期的转换为我们管理Activity之间数据传送提供了便利。例如:如果你必须在第一个Activity停止的时候把数据写入数据库让第二个Activity能读到它,这样的话你就应该在onPause()
方法里写而不是onStop()
方法。