title: Change options menu during runtime - invalidateOptionsMenu()
body: <p>I am creating a menu where one of the items is used the lock an object. When this item is clicked, the menu should be recreated with a button to unlock the item. I created two menus for this. This is working fine. I read that in Android version >= 11 the onPrepareOptionsMenu is no longer called when displaying the menu and I have to call invalidateOptionsMenu(). So I changed the build target (both in the Manifest and in properties) to 11 and ran the app on an AVD of 4.0.3. The program is still working fine, but I thought it shouldn't anymore, and I should check</p>
  
  <pre><code>if (Build.VERSION.SDK_INT &gt;= 11)
  {
    invalidateOptionsMenu();
  }
  </code></pre>
  
  <p>This is my code:</p>
  
  <pre><code>public class MainActivity3 extends Activity{
  
      boolean locked;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
  
          locked = false;
      }
  
        @Override
        public boolean onCreateOptionsMenu(Menu menu){
              MenuInflater inflater = getMenuInflater();
              inflater.inflate(R.menu.changing_menu1, menu);
  
              return true;
          }
  
          @Override
          public boolean onPrepareOptionsMenu(Menu menu) {
  
              menu.clear();
              MenuInflater inflater = getMenuInflater();
  
              if (locked) {
                  inflater.inflate(R.menu.changing_menu2, menu);
              }
              else {
                  inflater.inflate(R.menu.changing_menu1, menu);
              }
  
          return super.onPrepareOptionsMenu(menu);
          }
  
          public boolean onOptionsItemSelected(MenuItem item) {
              switch (item.getItemId()) {
  
            case R.id.Menu1:
            break;
  
            case R.id.Menu2 :
            break;
  
            case R.id.Menu3 :
            locked = !locked;
            break;
  
             }
          return true;
          }
  }
  </code></pre>
  
  <p>So the Menu is still refreshed/recreated in 4.0.
  Did I misunderstand something about the usage of invalidateOptionsMenu();?</p>