安卓活动生命周期中oncreateoptionsmenu()的调用顺序是什么?

7

onCreateOptionsMenu()方法是在activity的onStart()方法之后被调用的。


1
在每个函数中添加一个 Log.v(...) 消息以找出问题。 - Merlevede
一个真正简单的方法是在每个位置设置断点或日志,然后查看哪个被触发。 - Gabe Sechan
你能否提供一些示例代码,说明你认为函数的行为不当之处? - dethtron5000
OnStartOnResumeOnCreateOptionsMenu - gkiko
3个回答

8

首先调用onStart()方法(我尝试在方法中添加日志消息)。

enter image description here


4
我发现这个顺序是正确的: onCreate() - onStart() - onResume()- onCreateOptionsMenu()

2
我认为这相当费脑和令人崩溃的应用。我原以为在onStart中我可以访问所有内容。看起来最初的onCreateOptionsMenu是在onCreate期间或之后某个时候被调用的。 - norekhov

-2

这个方法只会在选项菜单第一次显示时被调用。如果想要每次显示菜单时都更新它,可以参考onPrepareOptionsMenu(Menu)方法。

这段内容来自Android文档。


现在每次显示菜单时都不会调用onPrepareOptionsMenu了。从Jelly Bean开始,需要调用onInvalidateOptionsMenu()来调用onCreateOptionsMenu()和onPrepareOptionsMenu()(当然,第一次除外)。这也让我认为onPrepareOptionsMenu()基本上是无用的,除非有人能给我举一个使用案例。 - Dhruva Bharadwaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接