mantener instancias de fragmentos dentro de FragmentPagerAdapter

¿Es OK para mantener una instancia de cada fragmento que se crea para un FragmentPagerAdapter dentro de FragmentPagerAdapter ?

Algo como esto:

 @Override public Object instantiateItem(ViewGroup container, int position) switch(position){ case 0: fragment0 = super.instantiateItem(container, position); return fragment0; case 1: fragment1 = super.instantiateItem(container, position); return fragment1; default: return super.instantiateItem(container, position); } } 

¿Me enfrentaré a problemas de memoria?

La idea es hacer algo como MyFragmentPagerAdapter.fragment0 para obtener una referencia al fragmento.

El problema con ese enfoque es que el FragmentManager puede crear nuevas instancias de un fragmento incluso si mantiene una referencia. En esa situación, varias instancias del mismo fragmento estarían en la memoria (leak) y la referencia que mantenga apunta a una instancia que ni siquiera podría mostrarse. En otras palabras, no es seguro.

Lo que es seguro sin embargo es mantener una referencia de su actividad en sus fragmentos.

En tu fragmento anulas

 @Override public void onAttach(Activity activity) { super.onAttach(activity); home = (YourFragmentActivity) activity; } public void onCreate(Bundle savedInstanceState) { home.setThisFragTag(getTag()); } 

En tu FragmentActivity

 public void ThisFragTag(String tag) { this.fragTag = tag; } 

Ahora en su actividad puede obtener una retención para la instancia de fragmento que se muestra actualmente con

 (YourFragmentClass) getSupportFragmentManager().findFragmentByTag(fragTag); 

Puede repetir esta operación para varios fragmentos

  • FragmentPagerAdapter con ViewPager y dos Fragmentos. Ir a la primera de la segunda y actualizar el primer texto
  • Actualizar imágenes en FragmentStatePagerAdapter al reanudar la actividad
  • Java.lang.InstantiationException: no se puede instanciar clase ... sin constructor vacío
  • IllegalStateException: No se puede cambiar la etiqueta del fragmento era android: switcher ahora android: switcher
  • Tengo un error extraño al usar un ViewPager dentro de un Fragmento
  • No se puede cambiar ID de contenedor de fragmento
  • FragmentPagerAdapter dentro de Fragment
  • FragmentPagerAdapter muestra todo el contenido del fragmento en la primera página
  • Cómo cambiar fragmento de forma programática en FragmentPagerAdapter?
  • Android: limitar los fragmentos de carga con una viewPager
  • FragmentPagerAdapter Deslizar para mostrar ListView 1/3 Anchura de la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.