Eu tenho tentado mostrar um "você quer sair?" tipo de diálogo quando o usuário tenta sair de uma atividade.
No entanto, não consigo encontrar os ganchos de API apropriados. Activity.onUserLeaveHint()
inicialmente pareceu promissor, mas não consigo encontrar uma maneira de interromper a atividade.
Respostas:
No Android 2.0 ou superior, isso seria semelhante a:
Nas versões anteriores, seria semelhante a:
fonte
fonte
CustomTabActivity.super.onBackPressed
finish()
códigosuper.onBackPressed()
?MyActivity.super.onBackPressed();
e funciona bem para mim. Parece a abordagem mais lógica também - chamar o método que você está substituindo, se desejar o comportamento padrão quando o usuário tocar em "Não".Modificaram o código @ user919216 .. e o tornaram compatível com o WebView
fonte
Eu preferiria sair com um toque duplo no botão voltar do que com uma caixa de diálogo de saída.
Nesta solução, ele mostra um brinde ao voltar pela primeira vez, avisando que outra pressão traseira fechará o aplicativo. Neste exemplo, menos de 4 segundos.
Token de: http://www.androiduipatterns.com/2011/03/back-button-behavior.html
fonte
Se você não tiver certeza se a chamada para "voltar" sairá do aplicativo ou levará o usuário a outra atividade, você pode agrupar as respostas acima em uma seleção, isTaskRoot (). Isso pode acontecer se sua atividade principal puder ser adicionada à pilha traseira várias vezes ou se você estiver manipulando seu histórico.
fonte
Usando o Lambda:
Você também precisa definir um idioma de nível para suportar o java 8 em seu gradle.build:
fonte
na China, a maioria dos aplicativos confirmará a saída "clique duas vezes":
fonte
Primeiro remova
super.onBackPressed();
doonbackPressed()
método que e abaixo do código:fonte
Eu gosto de uma abordagem @GLee e usá-lo com fragmento como abaixo.
Diálogo usando Fragmento:
fonte
fonte
Outra alternativa seria mostrar um
Toast
/Snackbar
na primeira imprensa pressionandoAlertDialog
a tecla Sair , o que é muito menos intrusivo do que mostrar uma para confirmar se o usuário deseja sair do aplicativo.Você pode usar o
DoubleBackPress Android Library
para conseguir isso com algumas linhas de código. Exemplo de GIF mostrando comportamento semelhante.Para começar, adicione a dependência ao seu aplicativo:
Em seguida, em sua atividade, implemente o comportamento necessário.
Por fim, defina isso como o comportamento na contrapressão.
fonte