Android之activity 四种加载方式

这里我们废话不多说,直接进入主题 开始对我们activity四种加载方式进行介绍。

standard

 这种模式呢是属于默认模式,在这个模式下每当我们跳转页面,都会默认创建一个新的实例。因此在这种模式下,允许有多个实例,每创建一个实例就会放入栈内,置于栈顶之上。每次按键放回就会一直出栈,处于栈顶的实例就是我们用户所看到的应用界面。

singleTop

在这一个模式中呢 我们就需要在Android manifest清单文件中进行初始化配置,如下

<activity android:name=".MainActivity" android:launchMode="singleTop">
        <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

在这种模式下,他允许同一个activity有多个实例化对象,但是他不允许,同一个相同的实例化对象存放在同一处,即连续相同两个实例化对象,在这种模式下,这种情况是不被允许的。

singleTask

在这一种模式之下,他的配置如下所示:

        <activity android:name=".MainActivity" android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

在这一种模式之下,他在同一个应用栈中,他不会允许出现两个相同activity的实例化对象,当我们创建一个实例化对象的时候,会先判断我们的栈中有没有存在一个这样的实例化对象,如果不存在的情况,他就会创建一个实例化对象,放置于栈顶之上,在另一种相反的情况下,他就会先移除我们想要的实例化对象栈中压在它上面的其他实例化对象,然后在将他进行启动。

singleInstance

在前三种模式之中,每一个模式都只用到一个task就是一个任务栈。但在这个新的模式之下就会有不同的,这个模式之下就会只有一个实例,并并且这个实例独立运行在一个task中,而且这个task中就只有这个实例,不允许有别的Activity存在。

Thanks

猜你喜欢

转载自blog.csdn.net/weixin_39460667/article/details/81452515