I am working on a large code base, and see in many places this type of code:
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);
}
}
I am a bit confused why this is used is so many places? I took a look at this document but it did not clarify well why this type of code is so heavily used on the app I am working on it
https://community.oracle.com/blogs/enicholas/2006/05/04/understanding-weak-references
Anyone can explain me if this is a common pattern? If so, why?