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生命周期
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容