Android 四种启动模式

Activity : A,B,C,D。
回退栈: s1,s2.

正常的生命周期:
开始-退出 : onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy

启动Activity时,都会将Activity压入当前Application的回退栈中。

四种启动模式:standard,singleTop,singleTask,singleInstance。

standard模式

launchMode属性的默认值,每次通过startActivity调用该Activity时都会new一个新对象。例如A1->A2.

生命周期(点击时): A1 onPause -> A2 onCreate -> A2 onStart -> A2 onResume -> A1 onSaveInstanceState -> A1 onStop.

singleTop模式

如果当前Activity在回退栈的栈顶,则直接使用该Activity,同时调用该Activity的onNewIntent方法。

生命周期(点击时):A1 onPause -> A1 onNewIntent -> A1 onResume.

如果不在栈顶,则与standard模式相同。

singleTask模式

保证同一个窗口类在多个回退栈中只能有一个实例。

调用同一应用程序内的Activity:

如果Activity在栈顶,则直接使用并调用onNewIntent方法。
如果Activity不在栈顶,则将该Activity之上的Activity全部出栈,并调用onNewIntent方法。

生命周期(点击时):A1 onPause -> A1 onNewIntent -> A1 onResume.

调用不同应用程序内的Activity:
同上,但是此时涉及到其他应用程序的切换,而不是单纯的出入栈操作。

singleInstance模式

同singleTask模式,但是新建立的任务只能有一个Activity对象。不能在该任务栈中启动其他Activity。

生命周期(点击时):A1 onPause -> A1 onNewIntent -> A1 onResume.

你可能感兴趣的:(Android 四种启动模式)