多个Activity生命周期
说起单个Activitity的生命周期,大家都不陌生,那么多个Activity之间的调用流程你知道吗?
demo
ActivityA、ActivityB。
从A 启动跳转到B,再从B结束返回A。流程如下,当B结束时
A:onPause ->B:onCreate
->B:onStart
->B:onResume
->A:onStop ->(B界面停留后关闭)->B:onPause
-> A:onStart -> A:onResume->B:onStop
->B:onDestory
。
我们看到并非是 一个Activity 的生命周期完全走完才走另一个Activity的流程。
尤其是onStop
方法,是在另一个Activity onResume
后才调用。
另外如果ActivityA 是透明主题的Activity,则A不会走onStop方法。
可能遇到的问题
1.Activity延迟启动/显示
1.如果在onCreate()、onStart()方法中做了耗时操作,那么在启动的时候会出现卡顿现象,严重的还会ANR
2.如果在上一个界面的onPause()中做了耗时操作,同样会卡顿。
2.Activity延迟销毁
1.如果在结束的界面的OnPause、onStop、onDestory 做耗时操作,会造成Activity的延迟销毁。
2.如果在即将要显示的界面的onResume中做耗时操作,同上.
还有一个比较常见的问题就是动画,如果界面做了耗性能的动画显示,而且动画没有关闭的情况下,结束界面或者显示界面,则都有可能会发生上述情况。一般会有10s的延迟回调。