Comunicación de Android entre la actividad y el fragmento
Tengo una activity
que contiene un ViewPager
dentro de él. El Adapter
de ViewPager es FragmentStatePagerAdapter
. Cada página es Fragment
. El Fragment
contiene una cantidad de Hilos. Mi problema es, tengo que parar todos los hilos dentro del fragmento cuando se ViewPager's
página ViewPager's
. ¿Cómo puedo hacer esto?
- Ver ciclo de vida del paginador y del fragmento
- ViewPager dentro de la cuestión del fragmento
- Cómo arrastrar un botón de acción flotante sobre un paginador de vista
- ViewPager page curl
- Obtención del error "La actividad Java.lang.IllegalStateException se ha destruido" al utilizar pestañas con ViewPager
- ActionBarSherlock con ViewPager no llamando ViewPager fragmentos métodos de ciclo de vida al ir y volver de backstack
- Android ViewPager Detectar desplazamiento vertical
- NestedScrollView contiene contenido menor que la altura de la pantalla Desplaza en CoordinatorLayout
- Cómo iniciar la actividad en una nueva ventana Utilización de WebView?
- Segundo conjunto de pestañas en un fragmento de Android
- Cómo resolver para viewpager: El niño especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
- Botón de un fragmento dentro de ViewPager activar onClickListener en referencia incorrecta
- Guardar el estado de WebView y restaurar en ANDROID
Usted ha preguntado acerca de la comunicación entre la actividad y el fragmento que se logra mediante la interfaz:
Su Fragmento:
public class YourFragment extends Fragment{ private OnListener listener; public interface OnListener { void onChange(); } void initialize( OnListener listener) { this.listener = listener; } //onview pager change call your interface method that will go to the activity as it has the listener for interface. listener.onChange(); }
Su Actividad:
public class yourActivity extends Activity implements yourFragment.OnListener { // intialize the method of fragment to set listener for interface where you define fragment. yourFragment.initialize( this ); // implement what you want to do in interface method. @Override public void onChange() { // implement what you want to do } }
Espero que ayude
La filosofía de Android con las aplicaciones es matar procesos, así que tal vez siguiendo la misma idea, podrías matar tus Hilos. Tenga en cuenta, sin embargo, que esto puede dar lugar a bloqueos si sus propios hilos bloquea, o monitores.
Un acercamiento más serio a mí parece utilizar Thread.interrupt () de su actividad. Entonces tus Hilos en tu Fragmento tienen que revisar el Hilo.interrompido para la interrupción, y terminar con gracia si han sido interrumpidos.
Puede usar Thread.join () si desea un comportamiento síncrono
Además, puede esperar un cierto tiempo para que su hilo termine con gracia utilizando un temporizador y, a continuación, muévalos en tiempo de espera.
Por favor, eche un vistazo a java.lang.Thread
Para que esto sea más fácil de implementar, puede utilizar un ThreadPoolExecutor o algún otro auxiliar del paquete java.util.concurrent.
- Android Studio: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
- ¿Cómo se borra el historial de registros de llamadas en android?