title: Fragments behaviour: FragmentTransaction::replace() and reverse backStack operation
body: <p>I call this method to go forward from AFrag to BFrag:</p>
  
  <pre><code>showFragment()
  { 
      FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction();
  
      // Add fragment to the container ContentView 
      fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag, mBFrag.getTag());
  
      // Add FADE effect
      fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);   
  
      // Keep the transaction in the back stack so it will be reversed when backbutton is pressed
      fragmentTransaction.addToBackStack(null);
  
      // Commit transaction
      fragmentTransaction.commit();
  }
  </code></pre>
  
  <p>It shows a new fragment (BFrag), replace the previous one (AFrag) and keep info about the transaction, so it can be reversed/undone automatically on back button pressed.</p>
  
  <p>When back button is pressed everything looks fine, the previous fragment is shown (AFrag). But when I go forward again (AFrag -> BFrag) I got a "Fragment already added exception".</p>
  
  <p>Didn't the reverse/undone operation remove the new fragment (BFrag)? Is this the expected behaviour? </p>
  
  <p>That's weird because after this, I decided to set a check:</p>
  
  <pre><code> if(mBFrag.isAdded()) 
   {
      fragmentTransaction.show(mBFrag);
   }
   else 
   {
     fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag, mBFrag.getTag());
   }
  </code></pre>
  
  <p>and stills, it gets into the else statement... and I get the exception. </p>
  
  <p>Any insight on what am I doing wrong, please?</p>
  
  <p>Thx.</p>