I realise this question has been asked many times, but I am still unable to completely understand this concept. In my application, I am using a static utility class to keep comm
No, it's a bad approach.
You better pass WeakReference<Activity>
to your methods, and implement methods like this:
public static final void showSimpleAlertDialog(final WeakReference<Activity> mReference, String message, final boolean shouldFinishActivity) {
Activity activity = mReference.get();
if (activity != null) {
//your code goes here
}
Further reading: http://android-developers.blogspot.ae/2009/01/avoiding-memory-leaks.html