标签:
1.1 首先是Activity的生命周期
直接上google给的生命周期图来说明:
总结以下的几点:
从图中可以看出,当ActivityA处于Resumed状态时,发送了startActivity的消息给ActivityB, 我们可以看出时序为:
ActivityA: onCreate->onStart->onResume->onPause ->onStop
ActivityB: ->onCreate->onStart->onResume
d. 启动Activity是通过intent来传递消息的,intent中不光是可以携带参数,也可以设置不同的启动方式,如:
setAction(intent, action);
setClass(context, class);
setComponent(componentName);
setClassName(package, classname);
1.2 Activity和Task Record的关系
简单的总结一下:
Standard:当Activity在被启动时,无论什么情况都会产生一个新的实例加入到栈中记录。
singleInstance: 表明该Activity在任何时候只有一个实例,并且该实例是单独存在一个栈中记录的,也就是说此栈只存在这一个activity的实例。
singleTop: 若该Activity已经在栈顶位置时,启动该Activity时,是不会产生实例,而是会触发既有的activity的onNewIntent回调。若该Activity不在栈顶,在行为和standard一致。
singleTask: 拥有此标签的Activity,也只能产生一个实例,所以当栈中已经存在该实例的话,那么再次启动此Activity时,会将已有栈中的该Activity的实例之上的所有Activity都进行出战操作,并且触发onNewIntent回调。
5.查看task情况,可以使用以下的命令:
adb shell dumpsys activity
因个人知识和能力所限,如有错误请留言,欢迎讨论,共同进步。
标签:
原文地址:http://www.cnblogs.com/yw-technology/p/5373317.html