Cómo saber cuando Fragmento se vuelve invisible
Estoy usando ViewPager con PagerSlidingTabStrip, tengo 3 fragmentos, cada fragmento tiene sus propios oyentes de encargo. En cada fragmento sobrepuesto a Destruir, Métodos de pausa, pero desafortunadamente cuando me muevo de un fragmento a otro tengo que eliminar a los oyentes de un fragmento, pero ninguno de los métodos anteriores se llaman como fragmentos permanecen en la memoria. Estos métodos sólo se llaman cuando me estoy moviendo a otra actividad. Así que cualquier persona puede decirme cómo puedo saber si un fragmento se va a hacer invisible para que pueda eliminar oyentes, de lo contrario estos oyentes van a molestar a los datos de todos mis fragmentos.
- No se puede encontrar la clase de símbolo onClickListener
- Enigma de encriptación
- El uso de jBCrypt para salar contraseñas en la aplicación de Android provoca una larga caída
- java.lang.SecurityException: intentando leer gservices sin permiso
- Cómo hacer línea horizontal en Android mediante programación
- Cómo cerrar la actividad sin terminar?
- Cómo solucionar SIGABRT nativo con Mapsforge en Android
- Cambiar imagen de contacto mediante programación
- El objeto de recolección no funciona?
- Android: ¿Cómo importar el contacto desde el teléfono?
- Interfaz de importación json de Java para Android / Java
- Operador ternario devuelve valor - Java / Android
- ¿Es el tema blanco y negro para los códigos QR un estándar?
Con ViewPager
debería superar Fragment.setUserVisibleHint()
Fragment.onHiddenChanged()
y reaccionar en el cambio de estado visible / oculto. Aún es necesario implementar onPause()
/ onResume()
. Lo expliqué en esta respuesta en más detalles.
Yo uso esto en mi fragmento, esto se llama dos veces. 1) cuando sale de la pantalla 2) cuando se crea el fragmento por primera vez. PARA RESOLVER VER ESTE VÍNCULO
@Override public void setUserVisibleHint(boolean visible){ super.setUserVisibleHint(visible); if (!visible){ //when fragment becomes invisible to user,do what you want... } }
Debe utilizar onPause()
y onResume()
como onDestroy()
sólo se llama cuando el fragmento se elimina de la memoria, no cuando deja de ser ejecutado.
Además, en una configuración de paginación, los fragmentos vecinos seguirán funcionando. Uno a cada lado del fragmento actual.
Para comprobar la visibilidad, puede comprobar este hilo:
Cómo determinar cuándo Fragmento se vuelve visible en ViewPager
- Android "cerrar la fuerza" lo que exactamente sucede con la memoria
- Cómo conectarse al servidor MySQL remoto a través de JDBC desde Android Applicaton