Activity的四种启动模式和onNewIntent()

Activity的四种启动模式

1.standard:默认启动模式,每次启动Activity时都会创建一个新的Actiity,并放入任务栈。

2.singleTop:栈顶复用,当任务栈的栈顶正好存在该Activity的实例,就会重用该实例,否则重新创建新的实例放入栈顶。

3.singleTask:全栈复用,当任务栈中存在该Activity的实例,就会重用该实例(会调用实例的onNewIntent)。重用时,会让该实例回到栈顶,在他之上的实例将会被移除任务栈。

4.singleInstance:将启动的Activity放在一个新创建的任务栈中,并让多个应用共享栈中该Activity的实例。

        当一个应用中的Activity供多种方式调用启动,但是希望任务栈中只有一个Activity实例。这样就需要将这个Activity launchMode设置为singleTask。第一次打开会执行onCreate--onStart--onResume,之后如果该Activity没有被destroy,重新打开执行onNewIntent--onRestart--onStart--onResume。

        当调用到onNewIntent(intent)的时候,需要在onNewIntent()中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。

Activity 生命周期

打开一个Activity:onCreate---onStart--onResume

back键返回:onPause--onStop--onDestory

按home键或者打开其他Activity:onPause--onStop  再次打开  onReStart--onStart--onResume

打开Activity样式的弹框:onPause

Activity中打开一个普通的对话框,不会对该Activity的生命周期有影响。

activity生命周期

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