Activity的启动模式

Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。

<activity>标签中android:launchMode=""是用来修改启动模式的。

<?xml version="1.0" encoding="UTF-8"?>

-<manifest android:versionName="1.0" android:versionCode="1" package="com.l000phone.androidxx.day07_activity_task_backstack_demo" xmlns:android="http://schemas.android.com/apk/res/android">

<uses-sdk android:targetSdkVersion="23" android:minSdkVersion="15"/>


-<application android:theme="@style/AppTheme" android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:allowBackup="true">


-<activity android:label="@string/app_name" android:name=".MainActivity">


-<intent-filter>

<action android:name="android.intent.action.MAIN"/>

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

</intent-filter>

</activity>

<activity android:label="@string/title_activity_activity_b" android:name=".ActivityB"> </activity>

<activity android:label="@string/title_activity_activity_c" android:name=".ActivityC" android:launchMode="singleInstance"> </activity>

<activity android:label="@string/title_activity_activity_d" android:name=".ActivityD"> </activity>

</application>

</manifest>

Android总Activity的启动模式分为四种:

一.standard(默认的启动模式)

不论什么时候,启动一个activity都会重新创建一个activity,并且重新创建的activity同样被放入同一个back stack(Task是一组被相继打开的activity的集合。Back stack是用于存放Task中所有的Activity集合的一个容器)中。


二.SingleTask(ActivityC的启动模式为singleTop
1、当设置为singletop的activity处于栈顶时,完成自启动(自己跳转自己),不会重新创建一个新的activity。
2、如果设置为singleTop的activity不在栈顶,则启动此activity的时候同样会创建一个新的activity。
3、如果要接受intent传递的数据,需要重写onNewIntent方法。

三.SingleTask(ActivityB的启动模式为SingleTask)
1、singletask启动模式的activity被启动的时候,不会创建一个新的activity实例。
2、启动处于singleTask模式的activity之上的所有activity会全部销毁(弹出栈)。
3、如果要接收intent中的数据,需要重写onNewIntent方法。

四. SingleInstance(ActivityC的启动模式是SingleInstance)
1、如果设置了singleInstance的activity被启动后,会处于另一个栈中(独居),当前activity独占一个栈。
2、出栈:先将处于前台栈中的所有activity全部销毁,才会开始销毁接下来的这个栈中的activity。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值