Oto fragment z uproszczonego kodu:Czy jest to wyciek kontekstu systemu Android?
static Activity longLivedField;
onCreate(...) {
longLivedField = this; // the only write to this field
}
Widziałem ludzi, twierdząc, to jako przeciek kontekstowego, a także tworzyć poprawki do niego. Typową poprawką jest unieważnienie pola w odpowiednich miejscach. Na przykład, w onPause()
:
onPause() {
longLivedField = null;
}
to robisz, aby utrzymać kontekst? – accordionfolder
Tak. Są też sugestie, że nie powinniśmy tego robić, ale zamiast tego używamy metody getApplicationContext(). Ale chcę tylko zrozumieć, dlaczego to może być problem. – dacongy