studio por pasar otro navegar medio llamar fragments fragmento entre desde cargar cambiar boton activity android android-intent android-ui

android - pasar - ¿Por qué la actividad se cuelga al volver de los pocos fragmentos de otra actividad?



navegar entre fragments android studio (1)

Tengo dos actividades Actividad A y B, Actividad A tiene 3 fragmentos a saber, a1, a2 y a3. a3 es el fragmento seleccionado por defecto que muestra los videos, a2 contiene una gran vista de texto y un pequeño texto de edición en ella y a1 contiene una vista de lista.

Ahora, en la barra de título de la actividad A, tengo un botón, y como está en la barra de título, es visible desde los 3 fragmentos. Al hacer clic en este botón, abro la Actividad B. usando la función Siguiente.

public void inviteUser() { if ( getUserType() == ACTIVE ) { Intent intent = new Intent(this, B.class); intent.putExtra(Constants.MEETING_ID, (long) session.getSessionId()); intent.putExtra(Constants.INVITE_FROM_SESSION, true); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_SINGLE_TOP); this.startActivityForResult(intent, RESULT_OK); } else { Toast.makeText(this, getString(R.string.strNotAPresenterMsg), Toast.LENGTH_LONG).show(); } }

Dentro de BI llame a setResult(ResultCode) and finish() . Ahora tengo dos problemas cuando comienzo B desde los Fragmentos a1 y a2,

1. B toma demasiado tiempo antes de volver a A (es decir, después de presionar el botón Atrás o después de terminar el trabajo de B), 2. No muestra ningún cuadro de diálogo después de regresar hasta que navego hacia algún otro fragmento o giro el dispositivo, una vez que lo hago, comienza a comportarse normalmente y sorprendentemente,

cuando comienzo la actividad B del fragmento a3, vuelve inmediatamente y se comporta normalmente.

He intentado anular todos los métodos del ciclo de vida de estos fragmentos y poner las declaraciones de Log dentro de cada método. El dolor es que la secuencia de llamada al método es normal y lo mismo para ambos casos.

He intentado cambiar las banderas de la intención pero sin ganancia.

He añadido falg android:configChanges="keyboardHidden|orientation" para todas las actividades de mi aplicación.

Espero haber explicado el problema, en caso de que alguien necesite una parte específica del código. por favor comente. Editaré la pregunta y agregaré eso. ¡Ayuda chicos!

EDITAR Estaba probando en GingerBread 2.3.6 que no funcionaba, pero lo comprobé en el emulador que ejecutaba JellyBean y está funcionando bien. Parece que el problema está relacionado con la versión del sistema operativo. Alguna idea ?

EDIT 2 Un punto importante de observación es que cuando en BI presionas el botón Atrás, después de unos pocos mili segundos se invocan onResume () de actividad previa y sus fragmentos. Pero incluso después de eso B está en pantalla por un tiempo y parece que el teléfono se colgó por unos segundos ...

EDIT 3 Acabo de enterarme de que onStop () y OnDestroy () de B no se invocan cuando inicio B desde el Fragmento a1 o a2. Sin embargo, se llaman perfectamente cuando estoy en a3. Cuál podría ser la razón de ésto ?

El documento dice que "la vida visible de una actividad ocurre entre una llamada a onStart () hasta una llamada correspondiente a onStop (). Durante este tiempo, el usuario puede ver la actividad en pantalla, aunque puede no estar en primer plano y interactuando con el usuario ".

Como onStop () no está garantizado, la actividad se comporta de forma anormal cuando no se llama. También llegué a saber que en los dispositivos HoneyComb + siempre se llama. Intenté llamar a OnStop () dentro de OnPause () pero eso no funciona. Qué hago ahora ?


Fue realmente difícil para mí explicar mi problema a la comunidad SO e incluso más difícil era entender el origen del problema, pero una vez que rastreé el origen del error, me tomó unos minutos resolver el problema.

El problema se debió a un diseño incluido (por ejemplo, x) en la vista de diseño de la actividad. La visibilidad de la x se estaba decidiendo en el fragmento actual. Era visible en a3 y View.GONE en otros dos fragmentos. Eliminé ese diseño de a1 y a2 y el problema fue resuelto ...

Sin embargo, todavía no puedo entender lo que tiene que relacionarse con los B''s onStop y onDestroy, que ahora se llaman perfectamente ... Si alguien puede encontrarlo, por favor comparta ...

Espero que la información pueda ser útil para otra persona,