zoukankan      html  css  js  c++  java
  • 【android】activity的4种启动模式简介

    首先咱必须知道,activity是以栈(后进先出)的结构进行管理的。

    当活动A启动了活动B时,A被压入到栈内,B在栈的最顶层。当B调用finish()结束活动时,B从栈弹出,此时A在栈的最顶层。

    我们可以在AndroidManifest.xml文件的activity节点,通过指定android:launchMode="standard"属性来实现启动模式的变更。

    好,了解活动是如何管理的,那么咱就来了解下,活动的4种启动模式。

    1:stand

    如果不指定启动模式的话,都是用此标准型启动模式。比如我们启动了活动A,不管栈里面是否已经存在A,A都会被重新创建一遍压入栈。

    2:singleTop

    顶层活动唯一。比如我们启动了活动A,此时如果栈的最顶层已经存在了A,那么此时就直接使用A。

    3:singleTask

    栈内活动唯一。和2最大的区别是,此模式不管你活动在栈的什么位置,只要启动A的时候发现A已经在栈内了,在A上面的活动全部被销毁(生命周期比如onDestory也会被执行),直接使用A

    4:singleInstance

    新创建一个栈来管理此活动。

    比如我们指定了活动B启动模式为singleInstance, A、C默认使用stand;以A -> B -> C顺序来启动三个活动后:

    C活动finish()后,返回的是A(而不是B,因为管理B的栈独立于AC);A活动finish()后,这时当前的栈已经空了,于是就找到了其他栈(也就是活动B所在的栈)。

  • 相关阅读:
    std::erase总结
    C++控制台应用程序运行控制台闪退
    判断当前进程是否已经打开C++
    获取当前系统语言C++
    VS中设置Qt多语言界面
    QString的功能
    安装mysql5.6
    centos6.9 PHP的编译安装并连接nginx
    centos6删除nginx
    centos6删除mysql安装
  • 原文地址:https://www.cnblogs.com/kimmy/p/4645483.html
Copyright © 2011-2022 走看看