code: public final void takeView(V view) {
      if (view == null) throw new NullPointerException("new view must not be null");
  
      if (this.view != view) {
        if (this.view != null) dropView(this.view);
  
        this.view = view;
        extractBundleService(view).register(registration);
      }
    }
docs: Called to give this presenter control of a view, typically from
  {@link android.view.View#onAttachedToWindow()}. Sets the
  view that will be returned from {@link #getView()}.
  <p/>
  This presenter will be immediately {@link BundleService#register registered}
  (or re-registered) with the given view's scope, leading to an immediate call to {@link
  #onLoad}.
  <p/>
  It is expected that {@link #dropView(Object)} will be called with the same argument when the
  view is no longer active, e.g. from {@link android.view.View#onDetachedFromWindow()}.
  
  @see BundleService#register