diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2012-12-03 17:50:17 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2012-12-03 17:50:17 +0100 |
| commit | ff52a912f6e8d82fbd626b0ae9fa6af302f659d1 (patch) | |
| tree | 616ee5545d423adccc460d3d13732aae65424174 /main/src/cgeo/geocaching/ui/WeakReferenceHandler.java | |
| parent | d9887e50d58d089c9379faca4f3b4d0e3bf5d564 (diff) | |
| download | cgeo-ff52a912f6e8d82fbd626b0ae9fa6af302f659d1.zip cgeo-ff52a912f6e8d82fbd626b0ae9fa6af302f659d1.tar.gz cgeo-ff52a912f6e8d82fbd626b0ae9fa6af302f659d1.tar.bz2 | |
refactoring: introduce handler with weak reference to activity
* remaining handler classes need to be changed also if no issues occur
Diffstat (limited to 'main/src/cgeo/geocaching/ui/WeakReferenceHandler.java')
| -rw-r--r-- | main/src/cgeo/geocaching/ui/WeakReferenceHandler.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/ui/WeakReferenceHandler.java b/main/src/cgeo/geocaching/ui/WeakReferenceHandler.java new file mode 100644 index 0000000..4724466 --- /dev/null +++ b/main/src/cgeo/geocaching/ui/WeakReferenceHandler.java @@ -0,0 +1,27 @@ +package cgeo.geocaching.ui; + +import android.app.Activity; +import android.os.Handler; + +import java.lang.ref.WeakReference; + +/** + * Standard handler implementation which uses a weak reference to its activity. This avoids that activities stay in + * memory due to references from the handler to the activity (see Android Lint warning "HandlerLeak") + * + * Create static private subclasses of this handler class in your activity. + * + * @param <ActivityType> + */ +public abstract class WeakReferenceHandler<ActivityType extends Activity> extends Handler { + + private final WeakReference<ActivityType> activityRef; + + protected WeakReferenceHandler(final ActivityType activity) { + this.activityRef = new WeakReference<ActivityType>(activity); + } + + protected ActivityType getActivity() { + return activityRef.get(); + } +} |
