¿Cual es la diferencia entre android:launchMode=”singleTask” y android:launchMode=”singleInstance”?

publicado por: Anonymous

Buen dia, estoy investigando los modos de lanzamiento de las actividades en android.

Estoy desarrollando una aplicación donde solamente debe haber una instancia de una actividad(A), si llegara el caso de que hubieran mas instancias de la actividad podría ocasionar errores en la ejecución de la aplicación, investigando un poco llegue hasta el punto de encontrar estos dos modos de inicio de actividades

android:launchMode="singleTask"  y   android:launchMode="singleInstance"

En play store encontré esta app que muestra como funcionan los tipos de lanzamientos de actividades en android
https://play.google.com/store/apps/details?id=com.novoda.demos.activitylaunchmode
El problema es que cuando inicio estas actividades en ambos modos parecen hacer lo mismo y no quisiera equivocarme en cual escoger para iniciar mi actividad, espero que me puedan ayudar a identificar la diferencia entre ambos modos de lanzamiento, ya que no entendí muy bien la información de la documentación oficial, de antemano muchas gracias

Documentación oficial:
https://developer.android.com/guide/topics/manifest/activity-element.html?hl=es-419

solución

Para entender la diferencia puedes revisar en la documentación para que son destinados los modos “singleTask” y “singleInstance”:

Activity android:launchMode

Las actividades “singleTask” y “singleInstance” solo
pueden iniciar una tarea. Siempre se encuentran en la raíz de la pila
de actividades. Además, el dispositivo solo puede manejar una
instancia de la actividad al mismo tiempo; solo una de dicha tarea.

En el caso de una actividad definida como “singleInstance”, no permite que otras actividades formen parte de su tarea. Es la única actividad en la tarea. Si se inicia otra actividad, esa actividad se asigna a una tarea diferente, como si FLAG_ACTIVITY_NEW_TASK estuviera configurada en el Intent.

Por lo tanto la diferencia es:

Los modos “singleTask” y “singleInstance” difieren entre sí en un solo aspecto: una actividad “singleTask” permite que otras actividades formen parte de su tarea, mientras que “singleInstance” no.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *