Android Open Source - mobilib Mbl Strong Event Listener






From Project

Back to project page mobilib.

License

The source code is released under:

MIT License

If you think the Android project mobilib listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.datdo.mobilib.event;
//from  w  ww.  j a  v a2s  . co m
import java.lang.ref.WeakReference;
import java.util.HashSet;
import java.util.Set;

/**
 * <pre>
 * A special abstract class of {@link MblEventListener}. This class is frequently used to create an anonymous listener.
 * {@link MblEventCenter} only keeps a {@link WeakReference} to listeners to prevent memory leak.
 * Therefore, if anonymous listener does not extend this class, it will be destroyed by GC.
 * Remember to unregister when listener is no longer needed by calling {@link #terminate()}
 * 
 * Here is an sample usage of this class:
 * <code>
 * MblEventCenter.addListener(new MblStrongEventListener() {
 *     {@literal @}Override
 *     public void onEvent(Object sender, String name, Object... args) {
 *         // handle the event
 *         // ...
 *         
 *         if (listenerIsNoLongerNeeded) {
 *             terminate();
 *         }
 *     }
 * }, "event_name");
 * </code>
 * </pre> 
 */
public abstract class MblStrongEventListener implements MblEventListener {

    private static final Set<MblStrongEventListener> sAnonymousObservers = new HashSet<MblStrongEventListener>();

    public MblStrongEventListener() {
        synchronized (sAnonymousObservers) {
            sAnonymousObservers.add(this);
        }
    }

    /**
     * <pre>
     * Remove this listener from {@link MblEventCenter} and make it ready to be destroyed by GC.
     * </pre>
     */
    public void terminate() {
        MblEventCenter.removeListenerFromAllEvents(this);
        synchronized (sAnonymousObservers) {
            sAnonymousObservers.remove(this);
        }
    }
}




Java Source Code List

com.datdo.mobilib.api.DBBase.java
com.datdo.mobilib.api.DBHelper.java
com.datdo.mobilib.api.MblApi.java
com.datdo.mobilib.api.MblCache.java
com.datdo.mobilib.api.MblException.java
com.datdo.mobilib.api.MblSSLCertificateUtils.java
com.datdo.mobilib.base.MblActivityPlugin.java
com.datdo.mobilib.base.MblBaseActionBarActivity.java
com.datdo.mobilib.base.MblBaseActivity.java
com.datdo.mobilib.base.MblBaseAdapter.java
com.datdo.mobilib.base.MblBaseApplication.java
com.datdo.mobilib.base.MblBaseFragmentActivity.java
com.datdo.mobilib.base.MblDecorView.java
com.datdo.mobilib.base.MblNetworkStatusChangedReceiver.java
com.datdo.mobilib.event.MblCommonEvents.java
com.datdo.mobilib.event.MblEventCenter.java
com.datdo.mobilib.event.MblEventListener.java
com.datdo.mobilib.event.MblStrongEventListener.java
com.datdo.mobilib.event.MblWeakArrayList.java
com.datdo.mobilib.imageinput.MblAutoResizeSquareImageView.java
com.datdo.mobilib.imageinput.MblDataInputActivity.java
com.datdo.mobilib.imageinput.MblImageFolderScanner.java
com.datdo.mobilib.imageinput.MblImageInput.java
com.datdo.mobilib.imageinput.MblImagePickingScanEngine.java
com.datdo.mobilib.imageinput.MblPickImageActivity.java
com.datdo.mobilib.imageinput.MblPickImageGridViewAdapter.java
com.datdo.mobilib.imageinput.MblTakeImageActivity.java
com.datdo.mobilib.util.MblAsyncTask.java
com.datdo.mobilib.util.MblImageLoader.java
com.datdo.mobilib.util.MblLinkMovementMethod.java
com.datdo.mobilib.util.MblUrlRecognizer.java
com.datdo.mobilib.util.MblUtils.java
com.datdo.mobilib.widget.MblHorizontalViewPager.java
com.datdo.mobilib.widget.MblListViewWithScrollableItems.java
com.datdo.mobilib.widget.MblSequenceImage.java
com.datdo.mobilib.widget.MblSideMenuEnabledLayout.java
com.datdo.mobilib.widget.MblTouchImageView.java