您的位置:首页 > 移动开发 > Android开发

singleInstance启动模式

2015-08-18 11:36 435 查看
Android Activity的启动模式有多种,我们已经学习过“singleTop”,“standard”这两种模式。下面我们将介绍另外两种启动模式“singleTask”和“singleInstance”。

单一任务模式
复制粘贴工程“10_activity启动模式singletop”,命名为“11_activity启动模式-singletask”。在清单文件中配置SecondActivity的启动模式为“singleTask”,代码如例1-1

例1-1

<activity

    android:name="com.itheima.taskstack.MainActivity"

    android:label="@string/app_name" >

    <intent-filter>

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

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

    </intent-filter>

</activity>

<activity android:name="com.itheima.taskstack.SecondActivity"

    android:launchMode="singleTask"

    ></activity>

复制代码
运行程序,此时任务栈创建,并将MainActivity即01入栈,效果如图1-1所示:


 

点击“开启界面02“按钮,打开SecondActivity即02入栈;然后点击”开启界面01“按钮即01再次入栈;接着点击” 开启界面01 “,则01又入栈;最后点击”开启界面02“,此时应用跳转到SecondActivity所在的页面,任务栈在这一过程中变化如下图1-2所示:


 

从图1-2可知:由于SecondActivity的启动模式为“singleTask“,故在任务栈中只能存在一个该Activity的入栈实例。当02入栈时,若任务栈中已经存在该任务实体,则复用该实体并使该实体处于栈顶。若要退出图1-2到系统桌面,此时我们只需要点击”BACK“按键两次。

单一实例模式
复制粘贴工程“10_activity启动模式-singletop”,命名为“12_activity启动模式-singleinstance”。在清单文件中配置SecondActivity的启动模式为“singleInstance”,代码如例1-2

例1-2

<activity

    android:name="com.itheima.taskstack.MainActivity"

    android:label="@string/app_name" >

    <intent-filter>

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

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

    </intent-filter>

</activity>

<activity android:name="com.itheima.taskstack.SecondActivity"

    android:launchMode="singleInstance "

    ></activity>

复制代码

运行程序,此时任务栈创建,并将MainActivity即01入栈,效果如图1-13所示:


 

点击“开启界面02“按钮,打开SecondActivity即02入栈;然后点击”开启界面01“按钮即01再次入栈;点击“Back”此时01出栈;再次点击“Back”此时01再次出栈,此时01所在的任务栈清空但02所在的任务栈仍存在。这一过程变化如下图1-4所示:


 

从图1-4可知:在点击“开启界面02”时,由于SecondActivity的启动模式为“singleInstance”,这种启动模式非常特殊,此时02会入栈到自己的任务栈中,02和01分别在不同的任务栈中;再次点击“开启界面01”按钮,则01再次入栈;点击“Back”则01出栈,再次点击“Back”则01再次出栈,此时01所在的任务栈清空,但02所在的任务栈仍存在。

总结
Activity有四种启动模式,下面是我们对这四种启动模式的总结,具体如下表1-1:


 

表1-1

配套文档与对应高清视频下载
http://pan.baidu.com/s/1qWLVGLI

在线视频
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android