O que faz uma atividade singleTask ter 2 instâncias?

Conforme docs, as atividades singleTask não podem ter várias instâncias. A única atividade do meu aplicativo é a singleTask e possui 2 instâncias ao mesmo tempo.

Etapas para recriar o problemaPasso

Crie um novo projeto no Android Studio 3.3.1, Adicionar Nenhuma Atividade, denomine singleTaskBug, (packagecom.example.singletaskbug), usando a linguagem Java com nível mínimo de API 21, sem suporte para aplicativos instantâneo

Passo

Adicione uma nova atividade manualmente editandoAndroidManifest.xml, em seguida, criando uma nova classe Java emappjavacom.example.singletaskbug namedLauncherActivity.

Conteúdo deAndroidManifest.xml:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".LauncherActivity"
        android:excludeFromRecents="true"
        android:launchMode="singleTask">

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

            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>

    </activity>
</application>

Conteúdo deLauncherActivity.java:

package com.example.singletaskbug;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;

public class LauncherActivity extends Activity {

    static int instanceCounter = 0;
    final int instanceId;
    final String TAG = "STB";

    public LauncherActivity() {
        instanceId = ++instanceCounter;
        Log.d(TAG, "Constructed instance " + instanceId + ".");
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "Created instance " + instanceId + ".");
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.d(TAG, "New intent to instance " + instanceId + ".");
    }

    @Override
    protected void onDestroy() {
        Log.d(TAG, "Destroyed instance " + instanceId + ".");
        super.onDestroy();
    }
}
Etapa

Vamos paraRunEdit Configurations... E noLaunch Options conjunto de seçõesLaunch: paraSpecified Activity eActivity: com.example.singletaskbug.LauncherActivity, então cliqueOK eRun 'app' Mudanç F10.

Passo

Aguarde até que a atividade fique visível. Agora, no dispositivo de teste (API 21 no meu caso), vá para configurações para definir este aplicativo como o iniciador padrão. Em seguida, pressione o botão home. Nesse ponto, você verá isso no Logcat:

02-15 17:22:01.906 26429-26429/com.example.singletaskbug D/STB: Constructed instance 1.
02-15 17:22:01.916 26429-26429/com.example.singletaskbug D/STB: Created instance 1.
02-15 17:22:24.228 26429-26429/com.example.singletaskbug D/STB: Constructed instance 2.
02-15 17:22:24.248 26429-26429/com.example.singletaskbug D/STB: Created instance 2.

questionAnswers(0)

yourAnswerToTheQuestion