管理方式
区别:
启动模式的设置
启动模式有2种设置方式:
1.在 AndroidMainifest设置
<activity android:name=".MainActivity"
android:launchMode="singleTop">
有四种模式
standard
默认启动模式,每次启动Activity,无论任务栈中是否已经有这个Activity的实例,系统都会创建一个新的Activity实例。
适用场景:普通页面
singleTop
singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例。
适用场景:通知、新闻(APP接收到多条推送消息,点开不同消息,均由同一实例展示。)
singleTask
SingleTask模式的Activity在同一个Task内只有一个实例,如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样。但Activity已经存在但不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈。
适用场景:主页,无论哪种业务场景下再次回到此页,都不应保留之上Activity。
singleInstance
和singleTask不同,singleTask只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstance的Activity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity。
适用场景:系统闹钟页面、来电显示、系统通讯录,不同APP调用此类Activity 时,首次创建实例,之后其他APP只能复用此实例。
2.通过 Intent设置标志位
Intent inten = new Intent (ActivityA.this,ActivityB.class); intent.addFlags(Intent,FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
FLAG_ACTIVITY_SINGLE_TOP |
指定启动模式为栈顶复用模式( SingleTop) |
FLAG_ACTIVITY_NEW_TASK |
指定启动模式为栈内复用模式( SingleTask) |
FLAG_ACTIVITY_CLEAR_TOP |
所有位于其上层的Activity都要移除, SingleTask模式默认具有此标记效果 |
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS |
具有该标记的Activity不会出现在历史Activity的列表中,即无法通过历史列表回到该Activity上 |
二者设置的区别
本文地址:https://blog.csdn.net/qq_37980878/article/details/107533764
如对本文有疑问, 点击进行留言回复!!
【Appium踩坑】小米手机,启动报错:exited with code 255 writing to settings requires:android.permission.WRITE_SECUR
android 拍照 预览图与 照片分辨率(可视区域)不一致
[PAT顶级]1025 Keep at Most 100 Characters (35分)
Android 天气APP(二十)增加欢迎页及白屏黑屏处理、展示世界国家/地区的城市数据
Android使用SharedPreferences保存List列表数据
解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题
网友评论