Добавить подменю в меню на панели действий во время выполнения

В моем приложении у меня есть экран с меню на панели действий, на котором я показываю подменю, которые мне нужно добавить во время выполнения в зависимости от состояния процесса, работающего в фоновом режиме.

Например, предположим, что я на экране ЭКРАН, и мое меню МЕНЮ, которое имеет три подменю

MENU---->  1. SubMenu1
           2. SubMenu2
           3. SubMenu3

Если процесс PROCESS, работающий в фоновом режиме, завершен, я хочу отобразить меню SubMenu1 и Submenu2, в противном случае я добавлю только SubMenu3, исключая SubMenu1 и SubMenu2.

Я могу принять это решение в onCreateOptionsMenu(Menu menu) метод, но если пользователь находится на ЭКРАНЕ, и ПРОЦЕСС завершается, SubMenu3 должен быть показан вместо ранее показанного SubMenus.

Я считаю, что это можно сделать (так как приложение Play Store добавляет меню "Мои приложения" во время выполнения). Как мне этого добиться?

1 ответ

Решение

Вы можете реализовать onCreateOptionsMenu(Menu) и создайте меню опций там на основе текущего состояния.

Всякий раз, когда это состояние меняется, вы можете позвонить invalidateOptionsMenu() чтобы указать, что меню опций необходимо воссоздать. Это восстановит меню и снова вызовет onCreateOptionsMenu(Menu) как описано в http://developer.android.com/reference/android/app/Activity.html

Другие вопросы по тегам