如果静态LifecycleObserver多次失效,会发生什么?

时间:2018-08-16 21:57:53

标签: java android static observer-pattern activity-lifecycle

任何人都可以向我解释为什么 BoundLocationListener 是静态类的,如果多次调用 bindLocationListenerIn 方法会发生什么?

下面的代码来自Android CodeLabs(https://codelabs.developers.google.com/codelabs/android-lifecycles/#0

public class BoundLocationManager {
    public static void bindLocationListenerIn(LifecycleOwner lifecycleOwner,
                                               LocationListener listener, Context context) {
        new BoundLocationListener(lifecycleOwner, listener, context);
    }

    @SuppressWarnings("MissingPermission")
    static class BoundLocationListener implements LifecycleObserver {
        private final Context mContext;
        private LocationManager mLocationManager;
        private final LocationListener mListener;

        public BoundLocationListener(LifecycleOwner lifecycleOwner,
                                 LocationListener listener, Context context) {
            mContext = context;
            mListener = listener;
            lifecycleOwner.getLifecycle().addObserver(this);
        }

        @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
        void addLocationListener() {
            ...
        }


        @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
        void removeLocationListener() {
            ...
        }
   }
}

0 个答案:

没有答案