When is the Android Fragment onCreateOptionsMenu method called?

Android FAQ: When is the Android Fragment onCreateOptionsMenu method called?

I was just working through a problem with an Android Menu and MenuItem, and added some debug code to the methods in my Android Fragment, and found that the onCreateOptionsMenu method is called after onStart. I didn’t put Log/debug code in every activity lifecycle method, but for the ones I did add logging code to, the specific order of the fragment method calls looked like this:

  1. onCreate
  2. onCreateView
  3. onActivityCreated
  4. onStart
  5. onCreateOptionsMenu

I was surprised, I thought onCreateOptionsMenu was called earlier — which led to my null pointer exceptions — but this is the way the calls worked with Android 7.x.

The Android method lifecycle image comes from this android.com page.

Photo D8
When is the Android Fragment onCreateOptionsMenu method called?