Android两个Actrivity的生命周期问题,求大神帮忙

 众所周知Android是用Task来管理Activity的,一个Task就是一组存在返回栈里的Activity集合,它是一种后进先出的数据结构。
 首先运行Activity A(调用A: onCreate()—>onStart()—>onResume())点击某个按钮跳转至Activity B(调用A:onPause()—> 调用B: onCreate()—>onStart()—>onResume()—>调用A:onStop()),此时应该是B在栈顶。最后在B中点击返回键(调用B: onPause()—>   调用A:onRestart()—> onStart()—> onResume()—>   调用B: onStop()—> onDestroy())。顺序是这样的。
 但我的问题是: 不是先销毁B,A才能显示啊,为什么不是(调用B: onPause()—>  调用B: onStop()—> onDestroy() —>调用A:onRestart()—> onStart()—> onResume())这样的顺序?B还没有被不可见A就出来了,这是为什么?

图片说明

返回键是直接调用的activity.finish();

为什么没人理解我的意思