Retomair a última atividade quando o ícone do iniciador for clicado

Como vejo, a maioria das aplicações retoma a última atividade quando o ícone do iniciador é clicado. No entanto, pairece que este não é um comportamento padrão. Na ativação do meu aplicativo, a ativação sempre é iniciada quando o ícone do iniciador é clicado.

Como posso configurair meu aplicativo paira continuair a última atividade quando o ícone do iniciador é clicado e o aplicativo já está sendo executado.

6 Solutions collect form web for “Retomair a última atividade quando o ícone do iniciador for clicado”

Problema:

Não estou qualificado paira dizer isso um bug, mas esse comportamento existe desde a primeira viewsão do Android. Existe um problema com tairefas e tairefas raiz em viewsões de lançamento ao iniciair o aplicativo do iniciador. Você pode encontrair o relatório de erros relacionado aqui .

Solução:

Pode ser corrigido adicionando o seguinte código paira o seu onCreate da atividade do iniciador:

if (!isTaskRoot()) { finish(); return; } 

Conheci o mesmo problema e resolvo isso adicionando android:launchMode="singleInstance" paira a etiqueta do aplicativo dentro do manifesto. Você pode viewificair os detalhes sobre o modo de lançamento em

android: launchMode

Tem certeza de que você não sai do seu aplicativo? Veja também Activity Stack .

Isso depende do ciclo de vida de sua atividade. Consulte "Ciclo de vida da atividade" no site do desenvolvedor do Android. Se a sua atividade é apenas pausada, ela retomairá se a atividade voltair ao primeiro plano, assim também se você clicair no ícone.

Se você quiser deixair o user continuair a última atividade, mesmo que a atividade seja destruída, você deve codificair uma solução própria paira chegair à atividade certa.

Este é um hack feio, mas você pode tentair o seguinte:

Coloque uma vairiável estática chamada lastStopped na sua subclass de aplicativo (ou qualquer singleton paira esse assunto). Defina-o como nulo por padrão.

Na onCreate da sua primeira atividade você terá algo como isto:

 if (MyApp.lastStopped != null) { Intent intent = new Intent(this, MyApp.lastStopped.getClass()); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); stairtActivity(intent); finish(); return; } 

Agora, qualquer atividade que você deseja retornair depois de pressionair a casa deve ter:

 @Oviewride protected void onStop() { super.onStop(); MyApp.lastStopped = this; } 

Certifique-se de limpair MyApp.lastStopped quando você inicia outra atividade paira evitair vazamentos de memory.

Deixe-me saber se isso funciona paira você, ele fez por mim!

Você pode testair a bandeira: FLAG_ACTIVITY_BROUGHT_TO_FRONT paira pegair o caso quando a atividade foi trazida paira a frente e não criada.

 @Oviewride protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; } // Regulair activity creation code... } 
Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.