2012-02-21 27 views
3

我们遇到了Honeycomb的ActionBar这个非常痛苦的问题,我想知道是否有其他人找到了解决方案。问题本身很简单:更新onResume()中的ActionBar刷新微调器

我们经常触发活动onCreateonResume中的后台任务,因为我们大多数屏幕都必须显示从Web服务加载的数据。在这些任务正在运行时,我们将显示ActionBar的刷新微调器并为其设置动画。问题是:在onCreateOptionsMenu之前执行onCreate和onResume,所以在我们开始任务的时候,刷新微调器甚至不存在。因此,它不会动画。

我没有看到任何简单的解决方法。我想我们可以保留有关onCreate中产生的任务的信息,并且一旦ActionBar变得可用,就相应地更新它。但是,我仍然无法相信用例如此普遍,因为这与ActionBar很难做到吗?

+0

这方面的进展如何?您的解决方法似乎就是解决方法。 – theomega 2013-02-05 17:42:30

+0

我一直使用解决方法,缺乏更好的解决方案。 – Matthias 2013-02-05 18:42:08

回答

0

所以我尝试使用invalidateOptionsMenu,如问题How to update a menu item shown in the ActionBar?所述,但没有任何效果。

我最终使用一个简单的布尔标志跟踪了动作栏的挂起更新。无论何时有呼叫刷新其状态,我都会设置该标志,然后在创建该标志后检查并重置该标志,并执行任何挂起的更新。很棒。