Aplicativo/atividade do Android para iniciar o Fresh completamente toda vez que começa ou retoma?

StackOverflow https://stackoverflow.com/questions/4219577

Pergunta

Eu tenho um aplicativo infantil para o Android e há algumas considerações únicas para este aplicativo, pois o aplicativo basicamente não tem navegação (é para crianças pequenas). Não quero quebrar minha interface do usuário do aplicativo (que foi bem -sucedida no iPhone) adicionando um botão de desativação/reinicialização.

O que eu realmente preciso é bastante simples - quero que minha atividade/aplicativo comece a limpar e novo toda vez que ele inicia. Seja uma carga inicial ou o que quer que seja - basicamente sempre que é chamado, quero uma instância completamente nova do meu aplicativo.

Inicialmente, pensei que poderia simplesmente sair/sair/terminar o aplicativo quando o usuário sair. Mas não encontrei uma maneira de fazer isso que não cause acidentes no início. Além disso, cada post de thread/pilha sobre essa idéia é preenchido com pessoas balançando os dedos e dizendo que você nunca deve sair de um aplicativo no Android.

Se eu não posso sair do aplicativo Onexit, há algo que posso fazer para reiniciar minha atividade toda vez que é chamado? (Ou isso seria um loop infinito?).

Apreciaria muito qualquer ajuda!

Foi útil?

Solução

Tente iniciar sua atividade principal em onResume, e limpar a pilha de atividades:

public void onResume() {
    super.onResume();
    startActivity(new Intent(this, MainScreen.class).addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}

Talvez estes não sejam os sinalizadores corretos para adicionar, mas confira o outro Intent Bandeiras e isso pode fazer o que você quiser!

Documentação dos sinalizadores de intenção

Outras dicas

Acabou fazendo com que funcione bem ligando para acabamento () no onPause ().

Novamente, aprecio o conselho de pessoas dizendo "não é assim que o Android faz as coisas". Eu tenho um bom entendimento das melhores práticas neste momento. Esta é uma situação incomum para um tipo incomum de usuário.

Em sua recarga, você pode tentar isso ..

onStop();
onCreate(getIntent().getExtras());
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top