@Override
 public void dismiss() {
   if (mWindowVisible) {
     mDisplayManager.unregisterDisplayListener(mDisplayListener);
     mWindowManager.removeView(mWindowContent);
     mWindowVisible = false;
   }
 }
    @Override
    public void show() {
      if (!mWindowVisible) {
        mDisplayManager.registerDisplayListener(mDisplayListener, null);
        if (!updateDefaultDisplayInfo()) {
          mDisplayManager.unregisterDisplayListener(mDisplayListener);
          return;
        }

        clearLiveState();
        updateWindowParams();
        mWindowManager.addView(mWindowContent, mWindowParams);
        mWindowVisible = true;
      }
    }
 @Override
 protected void onStop() {
   mDisplayManager.unregisterDisplayListener(mDisplayListener);
   super.onStop();
 }