0

Lorsque vous accédez au lien profond alors que l'application est en arrière-plan, le PostActivity correct est lancé et empilé en plus de l'activité à partir de laquelle le lien profond a été appelé. C'est bon et correct.Liens vers le lanceur/activité principale au lieu du lien profond

Si l'application n'est pas ouverte en arrière-plan lorsque le lien profond est tapé, l'activité du programme de lancement est ouverte au lieu de l'activité associée au lien profond. Bizarrement, si le bouton Précédent est enfoncé pour fermer l'activité du lanceur empilé et que le lien profond est de nouveau tapé, le PostActivity correct est lancé.

  • Existe-t-il une explication à ce problème?
  • Est-ce que ce comportement est attendu?
  • Comment est-ce que j'ai toujours l'activité de lien profond lancé sur des liens profonds et pas l'activité de lanceur?

Mon activité de lancement est:

<activity 
     android:name=".SplashActivity" 
     android:configChanges="orientation|keyboardHidden|screenSize" 
     android:label="@string/app_name" 
     android:screenOrientation="sensorPortrait" 
     android:windowSoftInputMode="adjustPan" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Mon activité deeplinked est:

<activity 
     android:name=".PostActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="sensorPortrait" 
     android:windowSoftInputMode="adjustResize"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="@string/deeplink_scheme" /> 
      <data android:host="article" /> 
      <data android:pathPattern=".*" /> 
     </intent-filter> 
    </activity> 
+1

Trouvez cela difficile à croire. Android ne démarre pas 'SplashActivity' par lui-même. Êtes-vous sûr de ne pas avoir du code dans 'PostActivity' qui vérifie si l'application a été initialisée et si ce n'est pas le cas, redirige vers 'SplashActivity'? Veuillez poster le code de 'PostActivity.onCreate()'. –

+0

Merci. Je suppose que cela répond si c'est "comportement attendu" qui est probablement l'entrée dont j'avais besoin. C'est peut-être ce que vous suggérez, alors je vais créer un nouveau projet vide pour tester le 'problème' avant de creuser dans mon projet existant. – Wex

+0

J'ai essayé un nouveau projet avec un simple lien profond et deux activités, et tout fonctionne bien. Mon problème doit être spécifique au projet et pas du tout normal. – Wex

Répondre

0

La réponse est que ce n'est pas un comportement normal, il doit y avoir autre chose que l'évidence qui est spécifique à ce projet qui provoque cela.