Por lo tanto, mi primera aplicación principal está casi codificada y estoy optimizando mi código. La aplicación funciona bien, pero no estoy seguro de mi forma de pasar el contexto a otras clases. No quiero hacerlo de la manera incorrecta. Me encontré con artículos y preguntas aquí en Stackoverflow sobre contextos y cuál es la forma correcta de pasarlo a clases que no son de actividad. También leo la documentación, pero ser un finlandés hace que la tecnología complicada sea aún más difícil de entender.¿Práctica recomendada para pasar el contexto a clases que no son de actividad?
Entonces, una pregunta simple. ¿Es correcta mi forma de pasar el contexto de mi actividad principal a otras clases (auxiliares)? Si no, ¿dónde puedo leer más sobre mejores prácticas en estas situaciones?
Por ejemplo: MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle sis){
super(sis);
new Helper(MyActivity.this).makeMyAppAwesome();
}
}
Helper.java
public class Helper {
Context context;
Helper(Context ctx){
this.context = ctx;
}
public void makeMyAppAwesome(){
makeBaconAndEggsWithMeltedCheese(context);
}
}
¿Está bien? Sería bueno que alguien pudiera proporcionar un artículo fácil de leer con ejemplos sobre este tema.
La regla básica es que no se aferran a un 'Context' más largo que existe el' Context'. –
Ese es uno de los dichos que no estoy seguro de entender.Es obvio que no utilizo el mismo contexto en otra actividad, ¿pero de esto no es probablemente de lo que estás hablando? –
La clave de este refrán, para su ejemplo, es comprender el ciclo de vida de la actividad. Esto evitará fugas de memoria y el uso de una instancia anterior de Actividad (esto no sucederá en su ejemplo). En su ayudante, incluiría una forma de establecer la actividad null en onStop y establecer el valor nuevamente en onStart. –