flutter didChangeAppLifecycleState nunca é executado
Aug 29 2020
Eu implementei o WidgetsBindingObserver, mas o aplicativo NUNCA é enviado para segundo plano, então não reconhece oAppLifecycleState.resumed
esta é a implementação atual
@override
void didChangeAppLifecycleState(AppLifecycleState state) async {
print('\n\ndidChangeAppLifecycleState');
switch (state) {
case AppLifecycleState.resumed:
print('\n\nresumed');
_mymethod();
break;
case AppLifecycleState.inactive:
print('\n\ninactive');
break;
case AppLifecycleState.paused:
print('\n\npaused');
break;
case AppLifecycleState.detached:
print('\n\ndetached');
break;
}
}
para simular o processo eu faço o próximo no android
- execute o projeto como --release
- abra o widget com o
WidgetsBindingObserver - abra outro aplicativo (como chrome ou configurações do telefone)
- voltar ao aplicativo
ao retornar ao aplicativo consigo ver meu widget na tela, o aplicativo não reinicia, mas NENHUM dos prints aparece no console não ocorre o evento print('\n\ndidChangeAppLifecycleState');e _mymethod();nunca é executado
Respostas
4 Abion47 Aug 29 2020 at 05:33
O mixin WidgetsBindingObserver requer um pouco mais de trabalho do que simplesmente implementar a interface. Você também precisa adicionar o seguinte à sua classe de estado do widget:
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino