我是靠谱客的博主 风趣可乐,这篇文章主要介绍Activity四大启动方式生命周期,现在分享给大家,希望可以做个参考。

Standard 标准模式启动

android:launchMode=“standard”

归纳:直接在栈顶新建一个Activity进行启动

生命周期:

===>开启一个Activity

I/LifecycleActivity_A: onCreate:
I/LifecycleActivity_A: onStart:
I/LifecycleActivity_A: onResume:

===>退出

I/LifecycleActivity_A: onPause:
I/LifecycleActivity_A: onStop:
I/LifecycleActivity_A: onDestroy:

SingleTop 栈顶启动

manifest:android:launchMode=“singleTop”
FLAG:FLAG_ACTIVITY_SINGLE_TOP

归纳:当启动的Activity在栈顶时,则进行复用,如果栈顶没有时使用默认的Standard模式

生命周期:

===> 启动A:

A: onCreate:
A: onStart:
A: onResume:

===> 栈顶启动:

A: onPause:
A: onNewIntent:
A: onResume:

FLAG_ACTIVITY_CLEAR_TOP启动

栈顶复用不走newIntent(), 将栈内的需要启动的activity移到最顶处启动,并将上面的activity全部出栈销毁。

===> 启动A FLAG_ACTIVITY_NEW_TASK

I/LifecycleActivity_A: onCreate:
I/LifecycleActivity_A: onStart:
I/LifecycleActivity_A: onResume:
I/LifecycleActivity_A: onPause:

===> 启动B FLAG_ACTIVITY_NEW_TASK

I/LifecycleActivity_A: onPause:
I/LifecycleActivity_B: onCreate:
I/LifecycleActivity_B: onStart:
I/LifecycleActivity_B: onResume:
I/LifecycleActivity_A: onStop:

===> 启动A FLAG_ACTIVITY_CLEAR_TOP

I/LifecycleActivity_B: onPause:
I/LifecycleActivity_A: onDestroy:
I/LifecycleActivity_A: onCreate:
I/LifecycleActivity_A: onStart:
I/LifecycleActivity_A: onResume:
I/LifecycleActivity_B: onStop:
I/LifecycleActivity_B: onDestroy:

===>A退出

I/LifecycleActivity_A: onPause:
I/LifecycleActivity_A: onStop:
I/LifecycleActivity_A: onDestroy:


SingleTask 栈内复用模式

android:launchMode=“singleTask”

归纳:当栈内有需要启动的Activity时,则将该Activity移动到栈顶,并在栈中这个activity顶部的activity全部出栈销毁。

生命周期:

===> 启动A:

A: onCreate:
A: onStart:
A: onResume:

===> 启动B:

A: onPause:
B: onCreate:
B: onStart:
B: onResume:
A: onStop:

===> 栈内启动A:

B: onPause:
A: onNewIntent:
A: onRestart:
A: onStart:
A: onResume:
B: onStop:
B: onDestroy:

FLAG_ACTIVITY_REORDER_TO_FRONT启动

===>启动A FLAG_ACTIVITY_NEW_TASK

I/LifecycleActivity_A: onCreate:
I/LifecycleActivity_A: onStart:
I/LifecycleActivity_A: onResume:

===> 启动B FLAG_ACTIVITY_NEW_TASK

I/LifecycleActivity_A: onPause:
I/LifecycleActivity_B: onCreate:
I/LifecycleActivity_B: onStart:
I/LifecycleActivity_B: onResume:
I/LifecycleActivity_A: onStop:

===> 启动A FLAG_ACTIVITY_REORDER_TO_FRONT

I/LifecycleActivity_B: onPause:
I/LifecycleActivity_A: onNewIntent:
I/LifecycleActivity_A: onRestart:
I/LifecycleActivity_A: onStart:
I/LifecycleActivity_A: onResume:
I/LifecycleActivity_B: onStop:

===>A退出

I/LifecycleActivity_A: onPause:
I/LifecycleActivity_B: onRestart:
I/LifecycleActivity_B: onStart:
I/LifecycleActivity_B: onResume:
I/LifecycleActivity_A: onStop:
I/LifecycleActivity_A: onDestroy:

===>B退出

I/LifecycleActivity_B: onPause:
I/LifecycleActivity_B: onStop:
I/LifecycleActivity_B: onDestroy:

SingleInstance 单例启动模式

android:launchMode=“singleinstance”

归纳:单独创建一个栈控件启动这个Activity,常用于启动壁纸,电话,闹钟等界面实现。

最后

以上就是风趣可乐最近收集整理的关于Activity四大启动方式生命周期的全部内容,更多相关Activity四大启动方式生命周期内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部