code: public void destroySelf(){
          if(mPager == null || mPager.getAdapter() == null){
              return;
          }
          InfinitePagerAdapter wrapper = (InfinitePagerAdapter)mPager.getAdapter();
          PagerAdapter adapter = wrapper.getRealAdapter();
          if(adapter!=null){
              adapter.unregisterDataSetObserver(dataChangeObserver);
          }
          removeAllViews();
      }
docs: clear self means unregister the dataset observer and remove all the child views(indicators).