10

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

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

根据我的测试,它甚至在 onResume 之后都没有

4

4 回答 4

8

该文档说明了以下内容:

public boolean onCreateOptionsMenu (Menu menu)

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

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

并引用 CommonsWare 提出的另一个相关问题:

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

在具有官方 Honeycomb 样式操作栏的设备和应用程序上,这将是正确的。如果没有操作栏,则在用户调用菜单之前不应调用 onCreateOptionsMenu(),通常是通过按下 MENU 按钮。

此处链接:Android:在 Activity 生命周期中何时调用 onCreateOptionsMenu?

于 2012-02-29T01:56:14.510 回答
1

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

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

于 2016-06-30T08:25:10.403 回答
0

这称为第一次触摸“选项”专用按钮。

我试图弄清楚什么时候在支持的 ActionBar 上调用它。

此外,您可以请求活动来执行此操作,(但您需要一个菜单​​存根实现)

activity.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, menu);
于 2012-11-22T14:46:15.890 回答
0

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

于 2012-02-29T01:33:50.073 回答