Activity的生命周期:
onCreate():创建
onStart()---onRestart():启动,不可见
onResume():可见,可交互,在栈顶
onPause():暂停,部分可见,在后台运行,不可交互(部分遮挡的情况)
onStop():停止,不可见
onDestroy():销毁
完整生命周期:onCreate()-->onStart()-->onResume()-->onPause()-->onStop()-->onDestroy()
A->B->A(A的生命周期):onCreate()-->onStart()-->onResume()-->onPause()-->onStop()-->onRestart()-->onStart()-->onResume()
A->弹框->A(A的生命周期):onCreate()-->onStart()-->onResume()-->onPause()-->onResume()
Activity的四种启动模式:
任务栈:应用运行起来后会开启一条线程,线程中会运行一个任务栈,当创建Activity实例后会放入任务栈中,后进先出
Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置
1. standard:每次激活Activity时(startActivity),都创建Activity实例,放在栈顶;
2. singleTop:如果栈顶正好是该Activity的实例,就重用该实例,否则就创建新的实例放在栈顶;
3. singleTask:如果栈中已经有改Activity的实例,则重用该实例(会调用实例的onNewIntent()),否则就创建新的实例放在栈顶;重用时,会让该实例回到栈顶,其上的实例将会被全部移除pop;
4. singleInstance:在一个新栈中创建该Activity的实例,多个应用可以共享该Activity的实例;相当于多个应用程序共享一个应用;