Implementando Menus de maneira mais simples
A partir da Versão 1.4.0-alpha01 do Android, a classe ComponentActivity agora implementa a interface MenuHost.
https://developer.android.com/jetpack/androidx/releases/activity#1.4.0-alpha01
Isso possibilita que qualquer componente adicione itens de menu à ActionBar, somente adicionando uma instância do MenuProvider à atividade ou um Fragment.
Cada MenuProvider, também pode ser adicionado ao MenuHost com um LifeCycle, que controlará automaticamente a visibilidade desses itens de menu com base no estado do LifeCycle e processará a remoção do MenuProvider quando a View for destruída.
Como mencionado no código acima, também podemos passar um Lifecycle.State como argumento. Como passamos um estado de RESUMED, uma vez que o determinado LifeCycleOwner atinge o Lifecycle.State, o MenuProvider será adicionado ao MenuHost e nosso menu será apresentado.
Com essa atualização podemos referenciar somente a interface, nos possibilitando a injeção do MenuProvider.
Agora se torna bem mais fácil testar e manipular nossos Menu.
Para mais detalhes da nova implementação, confira o link da documentação abaixo.
https://developer.android.com/reference/kotlin/androidx/core/view/MenuHost