Affichage application menu principal / écran d'accueil lors du retour à l'application après avoir commencé une activité / intention externe

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

  •  20-09-2019
  •  | 
  •  

Question

Je commence Android Market via mon application pour rechercher des produits similaires en utilisant ce code:

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

Cela fonctionne bien pour montrer des produits similaires. Cependant, si je frappe le bouton d'accueil alors que sur le marché, quand je re-ouvrir l'application, il affiche toujours des résultats du marché. Je veux aller au menu principal dans ce cas.

Y at-il une solution?

Était-ce utile?

La solution

Désolé, FLAG_ACTIVITY_NO_HISTORY est probablement pas la bonne solution. Notez la sémantique de celui-ci - l'activité ne semble pas seulement dans l'histoire. Ainsi, si l'utilisateur tape sur l'une des choses pour aller à l'activité suivante, puis en appuyant sur le dos, ils ne reviendront pas à la précédente (mais celui d'avant). Ce qui est rarement ce que vous voulez.

Pire encore, s'ils vont à une seconde activité de l'activité du marché, la maison de la presse, et revenir à votre application, la deuxième activité sera toujours là (il se maintient dans l'histoire).

Le drapeau correct pour cette situation est FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET .

Autres conseils

Si vous ajoutez le drapeau FLAG_ACTIVITY_NO_HISTORY à l'intention , il ne sera pas conservé sur la pile de l'histoire. Lorsque l'utilisateur navigue à votre application, la dernière activité qui était visible avant lancé sur le marché sera affiché.

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); 

Edit: est correcte hackbod : FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET est un meilleur ajustement pour ce que vous avez besoin.

Ce n'est pas un problème.

Lorsque vous appuyez sur la maison sur l'application du marché, il est pas fermé, juste mis en pause. Alors, quand vous l'ouvrez à nouveau, vous la reprendre. Consultez cycle de vie de l'activité Android .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top