singleTask启动模式不起作用

时间:2018-05-26 11:00:40

标签: android android-activity launchmode

即使在将launchMode指定为singleTask之后,也会创建我的活动的多个实例的奇怪问题。有人遇到过这个问题吗?任何指针都将受到赞赏。

以下是我在清单中宣布我的活动的方式:

    <activity
    android:name="com.test.TestActivity"
        android:launchMode="singleTask">
     <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <action android:name="android.intent.action.SEND_MULTIPLE" />

                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
            </intent-filter>
</activity>

这就是我在活动中发挥作用的方式:

Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
        sendIntent.setType("text/plain");
        activity.startActivity(Intent.createChooser(sendIntent, "Share"));

我正在测试它的Android版本是5.1.1

2 个答案:

答案 0 :(得分:0)

如果您想要摆脱活动的多个实例,请尝试使用 singleInstance

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

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

EXTRA NOTE:

  

singleTask : - 将始终创建一个新任务,并将新实例作为根推送到任务。但是,如果有任何活动   实例存在于任何任务中,系统将意图路由到该任务   activity实例通过onNewIntent()方法调用。在这种模式下,   活动实例可以推送到同一个任务。这种模式很有用   作为入口点的活动。

     

singleInstance : - 与singleTask相同,只是no活动实例可以推送到singleInstance的同一任务中。   因此,启动模式下的活动始终是单一的   活动实例任务。这是一种非常专业的模式,应该   仅用于完全作为一个实现的应用程序   活性。

Copied from : https://stackoverflow.com/a/36520016/3669559

答案 1 :(得分:0)

所以看来问题出在设备上。在具有相同Android版本的模拟器和其他设备上,singleTask工作正常。