Leí en la documentación de Android que estableciendo la propiedad launchMode de mi actividad en singleTop O agregando la bandera FLAG_ACTIVITY_SINGLE_TOP
a mi Intención, esa llamada al startActivity(intent)
reutilizaría una sola instancia de Activity y me daría la intención en la devolución de llamada onNewIntent
. Hice ambas cosas, y onNewIntent
nunca dispara y onCreate
dispara cada vez. Los documentos también dicen que this.getIntent()
devuelve el intento que primero se pasó a la Actividad cuando se creó por primera vez. En onCreate
llamo al getIntent
y obtengo uno nuevo cada vez (estoy creando el objeto intencional en otra actividad y agregando un extra a este ... este extra debería ser el mismo siempre que me lo devolviera el mismo objeto de intención). Todo esto me lleva a creer que mi actividad no está actuando como un "techo único", y no entiendo por qué.Modo de inicio Android "single top" y método onNewIntent
Para agregar algunos antecedentes en caso de que simplemente me falta un paso obligatorio, aquí está mi declaración de actividad en el manifiesto y el código que estoy utilizando para iniciar la actividad. La actividad en sí misma no hace nada digno de mención en lo que respecta a esto:
en AndroidManifest.xml:
<activity
android:name=".ArtistActivity"
android:label="Artist"
android:launchMode="singleTop">
</activity>
en mi llamamiento Actividad:
Intent i = new Intent();
i.putExtra(EXTRA_KEY_ARTIST, id);
i.setClass(this, ArtistActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
cheque Este vídeo. Explica launchMode muy bueno: http://www.slideshare.net/RanNachmany/manipulating-android-tasks-and-back-stack – Malachiasz