2016-01-15 3 views
-1

je l'ai fait comme ceci:Android App démarrer une nouvelle quand cliquez sur l'icône sur le bureau

Démarrer App dans une activité intérieure nommée A -> écran de verrouillage -> attendre longtemps pour vous assurer que l'application a été recyclée -> déverrouiller, afficher l'activité future A -> appuyer sur le bouton Accueil -> cliquer sur l'icône de l'application sur le bureau -> démarrer une nouvelle application -> appuyer sur retour -> revenir à A.

Je me demande comment ça se passe?

+0

quelle est la question ou quel est le problème que vous faites face. Je pense que vous devez jeter un coup d'oeil au cycle de vie de l'activité Android – playmaker420

+0

@ playmaker420 Je veux dire que lorsque je clique sur l'icône de l'application, il devrait y avoir une seule instance de programme sur le même téléphone, mais maintenant il y a 2.Il arrive avec l'étape dans ma question.Je veux savoir comment résoudre ce problème – Syehunter

Répondre

0

si vous avez besoin d'essayer cette solution

if (!isTaskRoot() 
      && getIntent().hasCategory(Intent.CATEGORY_LAUNCHER) 
      && getIntent().getAction() != null 
      && getIntent().getAction().equals(Intent.ACTION_MAIN)) { 

     finish(); 
     return; 
    } 

Voici quelques-unes de la description de http://developer.android.com/guide/topics/manifest/activity-element.html: **

... une nouvelle instance d'une activité "singleTop" peut également être créé pour gérer une nouvelle intention. Toutefois, si la tâche cible a déjà une instance existante de l'activité en haut de sa pile, cette instance recevra la nouvelle intention (dans un appel onNewIntent()); une nouvelle instance n'est pas créée. Dans d'autres circonstances - par exemple, si une instance existante de l'activité "singleTop" est dans la tâche cible, mais pas en haut de la pile, ou si elle est en haut d'une pile, mais pas dans la cible tâche - une nouvelle instance serait créée et poussée sur la pile.

**

+0

Merci pour votre réponse. J'ai pensé à cette méthode, mais il est dit que je pourrais lancer ceci dans l'activité racine dans Mainfest, cependant la racine est une SplashActivity qui se terminera quand démarrera la main. – Syehunter

+0

Dans mon projet, j'avais le même problème, splash était l'activité principale et quand j'ai écrit cette méthode dans onCreate(), le problème a été résolu. –