首页 > 学院 > 开发设计 > 正文

Activity的启动模式singleTask

2019-11-09 16:58:19
字体:
来源:转载
供稿:网友

设置了"singleTask"启动模式的Activity的特点:

        1. 设置了"singleTask"启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置了"singleTask"启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。

        2. 如果设置了"singleTask"启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。

<?xml version="1.0" encoding="utf-8"?>    <manifest xmlns:android="http://schemas.android.com/apk/res/android"        package="shy.luo.task"        android:versionCode="1"        android:versionName="1.0">        <application android:icon="@drawable/icon" android:label="@string/app_name">            <activity android:name=".MainActivity"                      android:label="@string/app_name"                    android:taskAffinity="shy.luo.task.main.activity">                <intent-filter>                    <action android:name="android.intent.action.MAIN" />                    <category android:name="android.intent.category.LAUNCHER" />                </intent-filter>            </activity>            <activity android:name=".SubActivity"                      android:label="@string/sub_activity"                    android:launchMode="singleTask"                    android:taskAffinity="shy.luo.task.sub.activity">                <intent-filter>                    <action android:name="shy.luo.task.subactivity"/>                    <category android:name="android.intent.category.DEFAULT"/>                </intent-filter>            </activity>        </application>    </manifest>    


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表