He leído que es un error y una fuente de pérdida de memoria en la aplicación de Android para mantener una referencia de larga duración a un contexto.Android: referencias a un contexto y fugas de memoria
Pero no entiendo si es buena idea crear una clase que se parece a éste:
public class HelperClass {
private Context context;
public HelperClass(Context context) {
this.context = context;
}
public void myHelperMethod() {
// uses this.context
}
}
Y llamaremos a partir de una actividad:
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
HelperClass h = new HelperClass(this);
h.myHelperMethod();
}
...
}
¿Qué pasa si tienes una variable privada con una clase de ayuda en tu actividad que tenga una referencia 'Context'? – Peterdk
@Peterdk si su variable contiene Instancia de contexto de getApplicationContext(), no hay problema. Pero si mantiene Contexto de una Actividad, tenga cuidado con las pérdidas de memoria (más correctamente manteniendo la instancia de Actividades más de lo necesario). Tal vez deberías usar una WeakReference para mantener la instancia de contexto de Actividad y usar un oyente para saber cuándo tu aplicación ha cambiado a otra actividad. – marciowb