Exibindo o menu principal do aplicativo/tela inicial ao retornar ao aplicativo depois de iniciar uma atividade/intenção externa

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Estou iniciando o Android Market via meu aplicativo para pesquisar produtos semelhantes usando este código:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://market.android.com/search?q=pub:\"some txt\""));
c.startActivity(intent);

Isso funciona bem para mostrar produtos semelhantes. No entanto, se eu apertar o botão doméstico enquanto estiver no mercado, quando reabre o aplicativo, ele ainda mostra os resultados do mercado. Eu quero ir para o menu principal neste caso.

Há uma solução?

Foi útil?

Solução

Desculpe, FLAG_ACTIVITY_NO_HISTORY provavelmente não é a solução correta. Observe a semântica - a atividade simplesmente não aparece na história. Assim, se o usuário aproveitar uma das coisas para ir para a próxima atividade, depois pressionar, eles não retornarão ao anterior (mas o antes). Isso raramente é o que você quer.

Pior, se eles forem a uma segunda atividade da atividade do mercado, pressionem para casa e retornarem ao seu aplicativo, a segunda atividade ainda estará lá (ela se mantém na história).

A bandeira correta para esta situação é Flag_activity_clear_when_task_reset.

Outras dicas

Se você adicionar o FLAG_ACTIVITY_NO_HISTORY Bandeira para a intenção, ela não será mantida na pilha de história. Quando o usuário navega de volta para o seu aplicativo, a última atividade que foi visível antes de lançar o mercado será mostrada.

Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("http://market.android.com/search?q=pub:\"some txt\"")); 

c.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
c.startActivity(intent); 

Editar: hackbod está correto: FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET é mais adequado para o que você precisa.

Isso não é um problema.

Quando você pressiona o aplicativo de mercado, ele não está fechado, apenas parado. Então, quando você o abre de novo, você retoma. Verificar Ciclo de vida da atividade Android.

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