substituição de onBackPressed()
-
21-12-2019 - |
Pergunta
Esta é a estrutura da minha aplicação:
A atividade A é uma ListViewActivity
com um botão para iniciar a atividade B.
Na atividade B, após preencher um formulário, existe um botão para iniciar a atividade C.
A atividade C salva a configuração e cria um novo registro para mostrar na atividade A.A atividade Button save in C inicia a atividade A.
Se o usuário seguir este procedimento mais de uma vez ao pressionar o botão Voltar da atividade A retorne na B (sem passar pela C porque quando comecei configurei FLAG_ACTIVITY_NO_HISTORY
) e na segunda vez ele pressiona voltar para A novamente, e isso se repete um número de vezes igual ao número de registros criados.
Fechar o aplicativo com o botão Voltar tornou-se um processo longo.
eu gostaria que onBackPressed
da atividade A sempre feche o aplicativo.
Inglês não é minha língua, espero ter sido claro.
Solução
Sempre inicie sua atividade A como abaixo
Intent intent = new Intent(current_activity_context, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Outras dicas
O método finish() fará isso.Algo assim
Intent intent = new Intent(getApplicationContext(),
Activity B.class);
Activity A.this.startActivity(intent);
finish();
Você deve substituir o método OnBackPressed
@Override
public void OnBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
super.onBackPressed();//Optional
}
Espero que ajude.
tente isso
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}