当一个Activity启动另一个Activity时,它们都经历了生命周期的转换。第一个Activity被暂停和终止(即使它在后面依然可见而不想终止)时,另一个Activity就会被创建。在这种情况下,Activity共享的数据要保存到光盘或其他地方,理解在第二个Activity被创建之前,第一个Activity不能完全被终止是至关重要的。否则,正在启动的第二个Activity的进程会覆盖正在终止的第一个Activity的进程。
特别是当在同一个进程中的两Activity之间切换时,生命周期回调的顺序都被很好的定义了。以下是Activity A启动Activity B是发生的操作。
1. Activity A的onPause()方法被执行;
2. Activity B的onCreate()、onStart()、和onResume()被顺序执行(现在Activity B有用户焦点);
3. 然后,如果Activity A不再屏幕上显示,它的onStop()方法就会被执行。
生命周期回调的可预见顺序允许管理两个Activity之间的切换信息。例如,当第一个Activity终止时你必须把数据写到数据库中以便下一个Activity能够读取它,那么你就应该在onPause()方法执行期间把数据写入数据库,而不是在onStop()方法执行期间。