Android: controle qual atividade é mostrada ao clicar na notificação
-
28-10-2019 - |
Pergunta
Em um aplicativo Android, tenho duas atividades;vamos chamá-los de A e B. A é a atividade principal e contém um botão que chama startActivity () para exibir B. Em suma:
A -> B
A tem um tópico que funciona a cada minuto.Nesta marcação, uma notificação é atualizada na barra de status
Isso é o que eu procuro:
1) Quando o usuário clicar na notificação quando nem A nem B estiverem visíveis, mostre A 2) Quando o usuário clica na notificação quando A está visível, nada deve acontecer 3) Quando o usuário clica na notificação quando B está visível, nada deve acontecer (ou, se for mais fácil, pop B para mostrar A)
1) e 2) são fáceis de realizar.3) irá iniciar uma nova versão de A e adicioná-la à fila:
A -> B -> A, que não é o que eu pretendia.O usuário deve pressionar três vezes para voltar para ir para a tela inicial
Existe uma maneira de garantir que clicar na notificação mostrará a pilha A -> B ou A sozinha?
Solução
Você deve definir o sinalizador da atividade A para singleTask e capturar a nova intenção startActivity()
para o onNewIntent(Intent i)
da atividade A (que você deve substituir).Espero que isso ajude!
Outras dicas
Defina o sinalizador FLAG_ACTIVITY_CLEAR_TOP
no método startActivity()
.
Depois disso, se você quiser recriar a atividade A, defina o sinalizador FLAG_ACTIVITY_SINGLE_TOP
.
Ou se quiser reutilizar a atividade A, defina o sinalizador FLAG_ACTIVITY_SINGLE_TOP
.