美文网首页
Android开发艺术探索学习笔记---Android启动模式

Android开发艺术探索学习笔记---Android启动模式

作者: 一二三四五六七八_ | 来源:发表于2020-09-17 15:34 被阅读0次

    activity使用来管理activity们

    activity的LaunchMode

    1、standard 每次启动都会重新创建一个activity,不管在栈中是否已经存在,新建的activity在栈顶。谁启动了这个activity,这个activity就运行在启动它的那个activity所在的栈中

    用application去启动activity,会报错,是因为非activity的context没有任务栈,解决方法是可以为启动的activity指定FLAGACTIVITYNEW_TASK,这样就为他创建一个新的任务栈

    2、singleTop,如果新的activity在栈顶,那activity就不会被重新创建,同时回调onNewIntent,不会执行onCreate和onStart方法

    3、singleTask,单实例模式,如果栈中存在该activity,则移除栈中该activity上的所有activity,并调用该activity的onNewIntent方法。如果栈中不存在该activity,则创建一个新的activity

    4、singleInstance,会直接创建一个新的任务栈,如果该任务栈在后台存在,则此后台任务栈被切换到前台

    设置启动模式

    1、manifest设置launchmode

    2、在代码中intent.addFlags(Intent.FLAGACTIVITYNEW_TASK)

    3、两者同时存在时,以第二种为准,第一种无法指定FLAGACTIVITYCLEAR_TOP标识,第二种无法指定singleinstance

    activity的flags

    这些flag可以设置activity的启动模式

    FLAGACTIVITYNEW_TASK,为activity指定singleTask模式

    FLAGACTIVOTYSINGLE_TOP,为activity指定singleTop模式

    FLAGACTIVITYCLEAR_TOP,将同一任务栈,位于该activity上面的都移除栈,与FLAGACTIVITYNEW_TASK配合使用

    FLAGACTIVITYEXCLUDEFROMRECENTS,如果设置新的activity不会再最近启动的activity的列表中保存,等同于在xml中设置andriod:excludeFromRecents="true"

    相关文章

      网友评论

          本文标题:Android开发艺术探索学习笔记---Android启动模式

          本文链接:https://www.haomeiwen.com/subject/xfylyktx.html