Oct 1st, 2014

Buenas prácticas a la hora de crear un Fragment | Desarrollo Android

Buenas prácticas a la hora de crear un Fragment | Desarrollo Android

A la hora de crear un Fragment, existen diversas alternativas:

  • Creando una nueva instancia con "new MyFragment()"
  • Creando un método estático "newInstance()"

Ambos métodos son correctos, pero, teniendo en cuenta el ciclo de vida de un fragmento, y sobre todo en el caso de que necesitemos pasarle alguna variable, esta es la forma que considero más correcta:

public static MyFragment newInstance(int someInt) {
    MyFragment myFragment = new MyFragment();
    Bundle args = new Bundle();
    args.putInt("KEY_VAR1", value);
    myFragment.setArguments(args);
    return myFragment;
}

Al crear una aplicación hay que tener en cuenta que miles de usuarios van a utilizar el móvil de infinitas formas, causando que nuestra actividad pase por cualquier fase del ciclo de vida.

Si los fragmentos los creamos a través del constructor por defecto o sobrecargado y además se añaden y reemplazan dinámicamente y no tienes en cuenta que la aplicación pueda ser enviada a segundo plano, el sistema puede acabar liberando memoria utilizada por tu aplicación. Esto provocará errores al recrear la actividad, ya que no dispondrá de los valores de las variables que pasaste al constructor en su momento. Android recrea los fragmentos a partir del constructor por defecto.

Por esta razón es importante guardar las variables necesarias como argumentos del fragmento, el único objeto que el sistema no eliminará automáticamente (salvo por petición del usuario, por ejemplo, si mata la aplicación desde la lista de aplicaciones recientes).

De esta manera, podremos recoger los valores de dichas variables cuando sea necesario:

getArguments().getInt("KEY_VAR1", 0);

 

Fuente: StackOverflow


Share Button

Sobre el Autor

vAlmaraz

Soy un desarrollador independiente de Salamanca, España. Aunque me especializo en Android y Desarrollo Web, también hago trabajos sobre Desarrollo Web Móvil, aplicaciones de escritorio y programación de robótica.

Comentarios

Escribe un Comentario