主要有几种情形:
1.点击icon冷启动的动画
在LaunchActivity的onCreate()中设置
2.Back键退出的动画
设置rootActivity的finish()退出动画
3.Home键之后重新从桌面icon进入的动画
观察到每次重新打开都会再次调用launchActivity的
launchA.onCreate()
lanuchA.finish()------------>在此重写需要的动画
xxx.onRestart()
xxx.onStart()
xxx.onResume()
lanuchA.onDestroyed()
4.页面间的转场动画
通过以下几个方法的重写设置
startActivity
startActivities
startActivityForResult
finish
5.转场过程中出现黑屏和白屏的情况:
正确做法:先startActivity, 再finish的顺序。建立新task栈也会有延迟。
白屏原因:是因为先finish再startActivity,
可能在activity页面未绘制完成时就执行上一个页面的finish动画,
造成下一个页面首先展示的是windowBackground(通常是白底)给人感觉切换的过程很卡顿。
黑屏原因:即时如上述操作后,在一些性能较差的机器上也很明显地看到几百毫秒的黑屏现象。
是因为onResume()和onAttachedToWindow()之间还是有执行时间间隙。
这个间隙之间的时间取决于view的复杂度
正确做法:多层级的嵌套视图使用viewStub进行懒加载处理,提供一个加载中...提示用户
最好可以在onAttachedToWindow()之后再结束需要结束的上一个Activity