Explain difference between onCreateOptionsMenu(Menu menu) and onPrepareOptionsMenu(Menu menu).
onCreateOptionsMenu() is called once.
onPrepareOptionsMenu() is called every time the menu opens.
From the onCreateOptionsMenu() documentation:
This is only called once, the first time the options menu is displayed. To update the menu every time it is displayed, see onPrepareOptionsMenu(Menu).