Вы можете использовать нечто, называемое invalidateOptionsMenu () вместе с OnPrepareOptionsMenu ().Каждый раз, когда invalidateOptionsMenu () вызывается, в обратном вызове вызывается OnPrepareOptionsMenu (). Здесь вы можете внести изменения в свой макет меню.Код выглядит примерно так:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
String title = remoteMessage.getData().get("title");
String message = remoteMessage.getData().get("body");
showNotifications(title, message);
//send a broadcast from here and catch it in MainActivity
}
Теперь в OnReceive () широковещательного приемника в MainActivity используйте invalidateOptionsMenu ():
@Override
OnReceive(){
invalidateOptionsMenu();
}
Переопределите метод OnPrepareOptionsMenu () в MainActivity иизменить макет там.Что-то на этих строках:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_notification_on, menu);
return super.onPrepareOptionsMenu(menu);
}