Pergunta

Eu tenho um aplicativo que circula em torno da atividade principal (menu principal).Em cada aplicação existe uma opção item de menu que direciona para esta atividade.

Em primeiro lugar, eu sempre começar uma nova atividade principal quando este item foi selecionado.Usando a intenção bundle, eu disse a principal atividade que algumas inicializações de eu fazer um novo começo não eram necessárias.

No entanto, eu não gosto muito do comportamento geral.Eu tropecei em cima de android:launchMode="SingleTask" e isso pareceu ajudar:agora eu não recriar o meu menu principal atividade o tempo todo;também, se eu pressionar o botão "back" voltar direto para a tela inicial.Este sente-se muito bem como um bom "main menu".

O meu problema agora é esse:se eu executar outra atividade do meu aplicativo, pressione o botão home e, em seguida, reabrir o meu aplicativo (por exemplo,usando o "último apps"), então eu não vá para a última atividade, mas para o principal.A outra atividade é destruído.

Alguma idéia de como posso implementar o comportamento de SingleTask sem apenas ser capaz de retornar a uma atividade?

Foi útil?

Solução

Se as suas outras atividades são declaradas normalmente com a atividade padrões do Android, em seguida, voltar para seu aplicativo deve levá-lo para a mesma actividade, de onde você parou (usando o hardware do botão home)

No entanto, lembre-se de que o sistema Android mata aplicações quando se requer recursos de sistema.Assim, seu app pode ter sido morto quando você foi para o outro aplicativo.Em seguida, quando você voltar para o seu aplicativo, o lançador terá de ser reiniciado, que é o seu Menu de atividade.

Para voltar à atividade principal a partir de qualquer atividade, faça isso:

public static void goHome(Context context) {
        final Intent intent = new Intent(context, HomeActivity.class); //give name of your main activity class here
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        context.startActivity(intent);
    }

Que vai limpar a atividade da pilha e ter você de volta para a sua atividade principal.Como você declarou singleTop, ele vai trazer os existentes principal atividade para o primeiro plano.A bandeira Intenção.FLAG_ACTIVITY_CLEAR_TOP irá remover todas as atividades na pilha em cima da actividade principal.(Eu estou supondo que você está dentro de uma mesma aplicação).

Agora, todas as suas outras atividades, só precisa incluir um botão cuja clique ouvinte invoca o método goHome();

A partir de sua atividade principal, se você pressionar o botão voltar do hardware, ele deve sair do seu app.

Outras dicas

Por que não chamar de acabamento() sobre as atividades que foram criados pela atividade principal?Desta forma, você retornar à atividade principal, sem criar um novo...

Eu acho que você deve salvar o estado de você actividade antes de iniciar outra atividade, e, em seguida, retomar a sua actividade sempre que você volta na última atividade.veja as atividades do ciclo de Vida do Android http://developer.android.com/guide/topics/fundamentals/activities.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top