pracuję na dużą bazę kodu, i zobaczyć w wielu miejscach tego typu kodu:dlaczego warto używać WeakReference na Android Słuchacze?
public static class RequestCustomData implements View.OnClickListener {
WeakReference<MainActivity> mainActivity;
public RequestCustomData(MainActivity activity) {
mainActivity = new WeakReference<>(activity);
}
@Override
public void onClick(View view) {
MainActivity activity = mainActivity.get();
activity.requestCustomData(true, null);
}
}
jestem trochę zdezorientowany, dlaczego ten jest używany jest tak wiele miejsc? Wziąłem spojrzeć na ten dokument, ale nie dobrze wyjaśnić, dlaczego ten typ kodu jest tak często używane w aplikacji pracuję nad nim
https://community.oracle.com/blogs/enicholas/2006/05/04/understanding-weak-references
Każdy może wyjaśnić mi, czy jest to wspólny wzór? Jeśli tak, dlaczego?
Zazwyczaj jest to zespół pomocy dla niechlujstwa limitów trwania słuchacza. Zauważ, że w twoim przykładzie, jeśli zamierzony cel 'WeakReference' kiedykolwiek wszedł do gry,' onClick (...) 'rzucił' NullPointerException'. Jeśli ten kod się nie zawiesza, użycie 'WeakReference' jest prawdopodobnie przykładem [kultowego programowania ładunków] (https://en.wikipedia.org/wiki/Cargo_cult_programming). –