finish(); startActivity(getIntent());
Gracias.
La verdad que una pregunta así, sin ver código de como esta armado es complicado.
Pero siempre que se modifica el ciclo de vida natural de un activity se corren estos tipos de riesgos. Estoy seguro que es porque algo no está correctamente armado, por ejemplo estoy seguro que por lo que comentas no es realmente necesario el finish() Seguramente comprobando algunas cosas en el onStart o en el onResume sin cerrar el activity podrías lograr el mismo efecto 😉
Ya estoy aqui otra vez, resolviendo (con su ayuda) problemas derivados de la actualización de mi aplicacion a Android N.Un nuevo problema me ha surgido y consiste en que algunas activitis me entran en un bucle de reinicio constante, paso a detallarlo.Una activiti X -> Inicia -> hace comprobaciones y a raiz de una comprobación abro otra activity para mostrar unos datos, el operador los lee y luego la cierra (finish()) y se regresa a la activiti llamante (padre)Hasta ahora al regresar de la actividad hija, la actividad padre seguia a partir del punto en que se había dejado y todo iba bien.Ahora con Android N resulta que siempre se reinicia la actividad padre (esto lo he comprobado en varias activitis que tengo y hacen todas lo mismo). con lo cual se entra en el bucle de comprobar datos -> lllamar actividad hija -> volver a la padre que se reinicia y vuelve a empezar y asi en un bucle infinito.
Por supuesto que puedo arreglar la activiti para que a pesar del reinicio no entre en un bucle, pero les quería preguntar si esto es lo normal a partir de ahora o si hay algun seteo que me permita modificar este comportamiento.
Nota:Anteriormente si necesitaba este comportamiento de reinicio, tenía que ejecutar estos comandos:finish(); startActivity(getIntent());Gracias.
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/0e9cdfe6-99dc-4ddb-9511-1650e435bc70%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
startActivityForResult(int1, atencion);No hay finish() para la act. padre.
La salida de la activiti hija si que lleva finish:Intent i = getIntent(); //-el intent que ha llamado a este.
setResult(RESULT_OK, i);
finish();
En la activiti padre tengo un onActivityResult:protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case SelecOtActiva:
Inicio();
break;
case atencion:
Log.d("inix", "ActiviyResult_atencion");//-Aqui debería de regresar de la activiti hija.
break;
}
}
}Según el seguimiento por log, en la actividad padre, nada más arrancar la aplicación hija con el:startActivityForResult(int1, atencion);, ya pasa por OnDestroy en la padre,al salir de la hija con el finish(), automaticamente pasa al OnCreate del padre, en el cual se vuelve a llamar a la hija, luego pasa por onActivityResult (del padre) y luego por el OnCreate de la hija y así sucesivamente...
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/03199e9d-06ee-465b-9bc6-d7ca15bfce5b%40googlegroups.com.
Si te refieres a esto que publique anteriormente:
Según el seguimiento por log, en la actividad padre, nada más arrancar la aplicación hija con el:startActivityForResult(int1, atencion);, ya pasa por OnDestroy en la padre,al salir de la hija con el finish(), automaticamente pasa al OnCreate del padre, en el cual se vuelve a llamar a la hija, luego pasa por onActivityResult (del padre) y luego por el OnCreate de la hija y así sucesivamente...
No es que yo vuelva a llamar al intent padre, es que esto es lo que hace el sistema, yo unicamente tengo un intent de entrada a la actividad padre, luego otro a la hija y finish() de la hija, nada mas, el sistema(Nougat) se monta todo este embrollo el solito, con versiones anteriores esto no pasa.Intent i = getIntent(); //-el intent que ha llamado a este.
setResult(RESULT_OK, i);
finish();
Intent result = new Intent(RESULT_OK, "este es mi resultado");O algo así:
setResult(Activity.RESULT_OK, result);
finish();
setResult(RESULT_OK);
finish();
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/f7d95120-99c6-424b-bfda-22841f135406%40googlegroups.com.
Intent returnIntent = getIntent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();Y que cambios tuviste que realizar?
--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/desarrolladores-android.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/b04265e0-0e97-43e2-8ced-c59fd10942b4%40googlegroups.com.