问题描述
我正在开发应用程序,在为我的应用程序实现菜单时,我在某些屏幕上隐藏了一些菜单项,为此,我正在使用以下代码:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem search = menu.findItem(R.id.action_search);
search.setVisible(false);
MenuItem create_opportunity = menu.findItem(R.id.menu_example);
create_opportunity.setVisible(false);
//this.invalidateOptionsMenu();
return super.onPrepareOptionsMenu(menu);
}
当我取消注释此invalidatinoptionsmenu行时,它开始提供I / InjectionManager吗? 连续在应用程序的日志中进行dispatchCreateOptionsMenu。 我可以知道,因此电池也可以消耗吗? ,此日志仅在三星手机中显示。
感谢您的投入。
1楼
我正在使用自己的应用程序处理类似的问题。 几乎说明了一切:
当事件发生并且您想要执行菜单更新时,必须调用invalidateOptionsMenu()来请求系统调用onPrepareOptionsMenu()。
因此从onPrepareOptionsMenu调用invalidateOptionsMenu()将创建一个无限循环。