onCreateOptionsMenu何时在启用ActionBar的活动中发生?

时间:2012-02-29 01:23:52

标签: android android-activity android-actionbar android-menu

我知道菜单项将被设置为ActionBar中的操作图标。

我想知道这个onCreateOptionsMenu函数,它什么时候在活动生命周期中调用。

从我的测试开始,它甚至没有在onResume

之后

4 个答案:

答案 0 :(得分:9)

文档说明如下:

public boolean onCreateOptionsMenu (Menu menu)

初始化Activity的标准选项菜单的内容。您应该将菜单项放入菜单中。这是仅调用一次,这是第一次显示选项菜单。要在每次显示菜单时更新菜单,请参阅onPrepareOptionsMenu(菜单)。

此处有进一步说明:http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu%28android.view.Menu%29

引用CommonsWare对另一个相关问题的看法:

  

首先调用onCreate方法,然后在调用onCreateOptionsMenu之前调用它。

     
    

在具有官方Honeycomb风格的操作栏的设备和应用程序中也是如此。如果没有操作栏,则在用户调出菜单之前不应调用onCreateOptionsMenu(),通常是按MENU按钮。

  

此处链接:Android: When is onCreateOptionsMenu called during Activity lifecycle?

答案 1 :(得分:1)

在我的测试中,我发现onCreateOptionsMenu是在onResume之后调用的,你可以在生命周期的完整图表中看到:

https://raw.githubusercontent.com/xxv/android-lifecycle/master/complete_android_fragment_lifecycle.png

答案 2 :(得分:0)

我相信它会在onCreate的同时调用,就在菜单出现之前,在这种情况下是操作栏

答案 3 :(得分:0)

第一次触摸“选项”专用按钮时会调用此方法。

我正在试图弄清楚何时支持ActionBar。

此外,您可以请求活动(但您需要菜单存根实现)

activity.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, menu);