当前位置: 首页 > 知识库问答 >
问题:

onCreateOptionsMenu在Jelly Bean上调用不一致

翁良弼
2023-03-14

我遇到了某种可能的竞争条件。

我在活动中使用了onCreateOptionsMenu()创建的选项菜单。

如何强制onCreateOptionsMenu()得到一致的调用?

共有1个答案

崔宇
2023-03-14

好的,经过大量测试,这都是由于应用内计费的异步监听器。这个监听器有时会早运行,有时会晚运行。侦听器中有对选项菜单上的项进行修改的代码。如果监听器运行得足够早,options菜单为null,在某个时候应用程序会崩溃。为了解决这个问题,我确保在创建选项菜单之后才调用监听器。

 类似资料:
  • 我有个罕见的问题。我有一个动态填充选项卡的活动(多达20个选项卡)。每个片段都有的实现和一个菜单,其中包含一个书签图标,当按下时会改变颜色。有一个类型的类变量,它是在调用fragment的时设置的。这是为了使我能够在之外设置书签菜单项(这也是动态完成的)。 问题:当父活动只有一个选项卡(一个片段实例)时,这个实现工作得很好。但是,使用多个选项卡时,应用程序会出现错误:

  • 扩展SherlockFragment的类具有setHasOptionsMenu(true);在onCreate()方法中。即使这样,在运行应用程序时,它也不会调用onCreateOptionsMenu()方法。 我在SO中读过这些类似的问题(Q1,Q2),没有得到任何帮助。 那会是什么原因呢? 我正在做的是,我正在从下面的地方调用一些其他的SherlockFragments。 不调用的是那些inn

  • P.P.S@Philipp Jahoda,我实现了onCreateOptionsMenu(...)在片段的托管活动中。

  • 我有一个应用程序,得到了一个活动与2个碎片水平放置。 在我的活动中,我使用膨胀菜单,使用它我可以显示actionbar选项菜单。但是,当我试图从其中一个片段更新操作栏菜单项时,没有调用。因此,我无法更新操作栏选项菜单。

  • 对于我的项目,我需要在有Android Jelly bean的设备中实现HDR功能。从代码中我看到,当选择HDR(高动态范围)时,应用程序正在向HAL层发送SCENE\u MODE\u HDR。我是相机HAL层的开发者。当我得到scene mode=scene\u mode\u HDR时,我应该做什么。我是否需要请求驱动程序提供3幅具有不同曝光补偿值的图像,并且应用程序将负责拼接图像以生成HDR图

  • 我正在测试连接失败期间客户端服务器的处理。 在客户端,当我从客户端向服务器发送消息时,拔下LAN电缆,我的ChannelFuture(如下)没有被调用。我所期望的是,我的通道将来会发现这个异常,这样我就可以在操作完成时处理它。 相反,它只会在客户端管道中的最后一个上游处理程序中被捕获。我做错了什么吗?或者也许这是Netty 3.2.4的问题? 当我拔下LAN电缆时,处理程序中出现异常: 我的频道未