Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启用ActionBar的活动中何时出现OnCreateOptions菜单?_Android_Android Activity_Android Actionbar_Android Menu - Fatal编程技术网

Android 启用ActionBar的活动中何时出现OnCreateOptions菜单?

Android 启用ActionBar的活动中何时出现OnCreateOptions菜单?,android,android-activity,android-actionbar,android-menu,Android,Android Activity,Android Actionbar,Android Menu,我知道菜单项将在操作栏中设置为操作图标 我想确切地知道onCreateOptions菜单函数,它在活动生命周期中何时调用 从我的测试来看,即使在onResume之后,它也不会被调用。我相信它与onCreate同时被调用,就在菜单出现之前,在这种情况下,actionbar的文档说明如下: public boolean onCreateOptionsMenu (Menu menu) 初始化“活动”的“标准选项”菜单的内容。您应该将菜单项放入到菜单中。这是第一次显示选项菜单时,仅调用一次。要在每次显

我知道菜单项将在操作栏中设置为操作图标

我想确切地知道onCreateOptions菜单函数,它在活动生命周期中何时调用


从我的测试来看,即使在onResume之后,它也不会被调用。我相信它与onCreate同时被调用,就在菜单出现之前,在这种情况下,actionbar的文档说明如下:

public boolean onCreateOptionsMenu (Menu menu)
初始化“活动”的“标准选项”菜单的内容。您应该将菜单项放入到菜单中。这是第一次显示选项菜单时,仅调用一次。要在每次显示菜单时更新它,请参阅OnPrepareOptions功能表(菜单)

进一步解释如下:

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

首先调用onCreate方法,在完成之前调用onCreateOptions菜单

在带有官方蜂巢式动作条的设备和应用程序上,情况将是如此。如果没有操作栏,则在用户调用菜单之前(通常通过按菜单按钮)不应调用OnCreateOptions菜单()


此处链接:

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

我想知道它什么时候在ActionBar上被调用

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


在我的测试中,我发现OnCreateOptions菜单在onResume之后被调用,正如您在这个完整的生命周期图中所看到的:


根据我的测试,它甚至在onResume之后也不会被调用。我不相信它会在onResume之后被调用,菜单只能创建一次,要更改它,你需要使用
invalidateOptions菜单()
更新它,请求系统调用
onPrepareOptions菜单()
只需在“onCreateOptions菜单”上进行谷歌搜索检索此
activity.onCreatePanelMenu(Window.FEATURE_OPTIONS_PANEL, menu);