Como conhecedor da plataforma Android, DEVEMOS saber que ao chamarmos o método startActivity estamos adicionando a atividade em uma fila (ou pilha), o Android chama essa fila de ‘Android Stack’.
Há situações que ao iniciarmos uma nova Activity temos que limpar a pilha, para fazer isso basta definirmos certas “flags” no Intent responsável. Veja o exemplo:
Intent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
As flags definidas neste exemplo, permite que seja criado um novo registro no Stack (FLAG_ACTIVITY_NEW_TASK) e os demais sejam definitivamente apagados (FLAG_ACTIVITY_CLEAR_TOP).
Atenção: A maioria dos aplicativos não deve interromper o comportamento padrão de atividades e tarefas. Se você determinar que é necessário para a sua atividade para modificar os comportamentos padrão, tenha cuidado e não se esqueça de testar a usabilidade da atividade durante o lançamento e quando a navegação para ele de outras atividades e tarefas com a volta botão. Certifique-se de testar o comportamento de navegação que possam ser incompatíveis com o comportamento esperado do usuário.
Fonte: http://developer.android.com/guide/components/tasks-and-back-stack.html#ManagingTasks
E quando eu quiser por exemplo que ele apague toda a pilha e volte apenas para a activity inicial tipo o home do aplicativo?