Modo de inicio “single top” de Android y método onNewIntent
Leí en la documentación de Android que al configurar la propiedad launchMode de mi Actividad en singleTop O agregando elFLAG_ACTIVITY_SINGLE_TOP
Bandera a mi Intención, ese llamado.startActivity(intent)
reutilizaría una única instancia de actividad y me daría la intención en elonNewIntent
llamar de vuelta. Hice ambas cosas, yonNewIntent
nunca dispara yonCreate
dispara cada vez. Los doctores también dicen quethis.getIntent()
devuelve la intención que se pasó primero a la Actividad cuando se creó por primera vez. EnonCreate
estoy llamandogetIntent
y estoy obteniendo uno nuevo cada vez (estoy creando el objeto de intento en otra actividad y le estoy agregando un extra ... este extra debería ser el mismo cada vez que me devuelva el mismo objeto de intento). Todo esto me lleva a creer que mi actividad no está actuando como una "parte superior única", y no entiendo por qué.
Para agregar algunos antecedentes en caso de que simplemente me esté faltando un paso, esta es mi declaración de actividad en el manifiesto y el código que estoy usando para iniciar la actividad. La Actividad en sí misma no hace nada que valga la pena mencionar al respecto:
en AndroidManifest.xml:
<activity
android:name=".ArtistActivity"
android:label="Artist"
android:launchMode="singleTop">
</activity>
en mi actividad de llamada:
Intent i = new Intent();
i.putExtra(EXTRA_KEY_ARTIST, id);
i.setClass(this, ArtistActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);