Activity也叫活动,是Android四大组件之一。
生命周期:
1、onCreate():Activity被创建,这个阶段可以做一些初始化工作(界面、数据等)。
2、onRestart():Activity正在被重新启动,这种情形一般是用户行为导致(按Home、进入新的Activity又重新回退)。
3、onStart():Activity被启动,这个阶段属于可见但无法交互。
4、onResume():Activity处于前台并可以进行交互。
5、onPause():Activity正在停止。
6、onStop():Activity即将停止。
7、onDestory():Activity被销毁,这里必须回收所有的系统资源。
典型情况下生命周期:
1、第一次启动:onCreate、onStart、onResume。
2、打开新Activity或按Home进入桌面:onPause、onStop。(如果新Activity为透明则不会回调onStop)。
3、再次回到原Activity:onRestart、onStart、onResume。
4、按下back键回退时:onPause、onStop、onDestory。
异常情况下生命周期:
1、Activity被系统杀死并重建:onPause/onSaveInstanceState(这两个方法没有既定的时序关系)、onStop、onDestory、onCreate、onStart、onRestoreInstanceState、onResume。
优先级:
1、前台Activity:与用户进行交互的Activity,优先级最高。
2、可见非前台Activity:无法与用户交互但可见的Activity(如打开了对话框),优先级次于前台Activity。
3、后台Activity:调用了Stop方法的Activity,优先级最低。
横竖屏切换时不重建Activity方法:
在AndroidMenifest.xml中的activity节点加一个“configChange="orientation|screenSize"”即可。
启动模式:
1、standard:标准模式,采用先进后出方法,每一次启动都需创建新的Activity。
2、singleTop:栈顶复用模式,如果Activity位于栈顶,则无需新建Activity直接复用即可。
3、singleTask:栈内复用模式,如果Activity处于栈中,则会把排于其上的Activity都挤出栈内,然后复用。
4、singleInstance:单实例模式,具有此种模式的Activity会位于一个单独的栈内。
设置启动模式方法:
1、AndroidMenifest方式:在AndroidMenifest.xml中的activity节点加一个“launchMode="你想要的的模式"”即可。
2、代码方式:通过给Intent增加标记位来设置启动模式:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
优先级第二种高于第一种,如果两者同时存在,优先使用第二种。
Activity启动方式:
1、显示调用
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
2、隐式调用
隐式调用需要Intent能够匹配目标组件中的IntentFilter中的所有的信息,包括action、category、data。
学习资料:Android开发艺术探索。