1. Android中Activity的调用机制
据我的了解,Android中Activity跳转的实现,主要是通过栈的先进后出的原理设计的。当新建一个Activit的时候,把它压入栈,然后按返回键的时候,就出栈。android设置了容纳Activity栈的大小,当超过某个值的时候,系统就自动会对其进行回收。具体怎么实现的,后续研究。
2. Android证明周期中的过程
程序第一次启动时的调用: onCreate ---> onStart() --> onResume()
Activity A 调用Activity B的过程:
Activity A: onPause –> 等待B的创建 --> onStop
Activity B : onCreate ---> onStart() --> onResume()
按返回键回到A时
Activity B : onPause –> 等待A恢复 ---> onStop –> onDestory
Activity A : onRestart --> onstart –>onResum
onCreate 和onStart的区别?
onCreate 被调用的时候,一定是一个新的窗体创建的时候,而onStart在窗体创建之后或者窗体从暂停状态跳转到激活状态
onResum: 被调用的时候,Activity的画布已经出来了,只等待绘制控件了。因此一般在此添加控件的动画
onPause 和onStop和onDestory的区别:
onPause: 窗体A执行跳转到B的时候被调用,涉及到数据的保持等操作的时候,一般在onPause中做
onStop: 当窗体A成功调用到窗体B时被调用,
onDestory:窗体被销毁的时候调用
因为栈对Activity的回收机制,因此尽量不要在onStop和onDestory中做跳转时数据的保存。