Debe cambiar el launchMode
de su actividad al singleTask
en el archivo androidManifest.xml.
El valor predeterminado para esta propiedad es standard
, que permite que se ejecute cualquier cantidad de instancias.
actividades "singleTask" y "singleInstance" solo pueden comenzar una tarea. Siempre están en la raíz de la pila de actividades. Además, el dispositivo solo puede contener una instancia de la actividad a la vez, solo una de esas tareas. [...]
Los modos "singleTask" y "singleInstance" también difieren entre sí en un solo aspecto: una actividad "singleTask" permite que otras actividades formen parte de su tarea. Siempre está en la raíz de su tarea, pero otras actividades (necesariamente las actividades "estándar" y "singleTop") pueden iniciarse en esa tarea. Una actividad de "instancia única", por otro lado, no permite que otras actividades formen parte de su tarea. Es la única actividad en la tarea. Si comienza otra actividad, esa actividad se asigna a una tarea diferente, como si FLAG_ACTIVITY_NEW_TASK estuviera en el intento.
Mira la Android Developers' Guide para una explicación más detallada (la cita es de allí también)
<activity android:name=".activity.YourActivity"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true"
android:clearTaskOnLaunch="false"
android:finishOnTaskLaunch="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>