Depois de tocar no ícone do aplicativo, o iniciador cria uma nova instância da atividade raiz repetidas vezes.

Depois de tocar no ícone do aplicativo, o iniciador cria uma nova instância de atividade raiz e onCreate () da atividade raiz é chamado quando a atividade raiz já está presente em segundo plano, como onPause (). Ele cria uma nova instância da atividade raiz repetidas vezes, em vez da atividade raiz onResume ().

Eu sei que isso se deve ao fato de as intenções usadas para iniciar o aplicativo serem diferentes. O Eclipse inicia um aplicativo usando uma intenção sem ação e sem categoria. O Launcher inicia um aplicativo usando uma intenção com a ação android.intent.action.MAIN e a categoria android.intent.category.LAUNCHER. O instalador inicia um aplicativo com a ação android.intent.action.MAIN e nenhuma categoria.

Após uma longa pesquisa, encontrei o seguinte código Ele está funcionando. Mas acho que é uma solução alternativa. Existe alguma outra solução, exceto o código a seguir.

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)     != 0) {
        // Activity was brought to front and not created,
        // Thus finishing this will get us to the last viewed activity
        finish();
        return;
    }

    // Regular activity creation code...
}

questionAnswers(0)

yourAnswerToTheQuestion