当Activity A 切换到Activity B 时,两者的生命周期会发生一系列的变化。Android API Guides 上面的原话为
- Activity A's
onPause()
method executes. - Activity B's
onCreate()
,onStart()
, andonResume()
methods execute in sequence. (Activity B now has user focus.) - Then, if Activity A is no longer visible on screen, its
onStop()
method executes.
转化成图表的形式就是:
其中,当Activity B的回调函数onResume()完成后,会有两种情况发生:1. 如果Activity B的界面不透明,且覆盖整个屏幕时(即Activity A完全被遮盖了),Activity A的回调函数onStop()会被调用, Acitivy A进入不可见状态。2. 如果Activity B的界面为透明或半透明的,或者界面没有占据整个屏幕空间(如Dialog),Activity A的回调函数onStop()不会被调用, Activity A不会进入不可见状态。