0

當應用在後臺時訪問深層鏈接時,啓動正確的PostActivity並將其堆疊在調用深層鏈接的活動之上。這是很好和正確的。將鏈接深度鏈接到啓動器/主要活動而不是深層鏈接

如果在點擊深度鏈接時應用程序未在後臺打開,則會打開啓動器活動,而不是與深度鏈接關聯的活動。奇怪的是,如果按下後退按鈕關閉堆疊的發射器活動,並再次點擊深層鏈接,則會啓動正確的PostActivity

  • 是否有解釋此行爲?
  • 這是預期的行爲?
  • 我如何始終在點擊深層鏈接而不是啓動器活動時啓動深層鏈接活動?

我的發射活動是:

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

我deeplinked活動是:

<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

發現這很難相信。 Android本身不會啓動'SplashActivity'。你確定你沒有'PostActivity'中的代碼來檢查應用程序是否已經初始化,如果沒有,重定向到'SplashActivity'?請從'PostActivity.onCreate()'發佈代碼。 –

+0

謝謝。如果它是「預期的行爲」,我猜這個答案可能是我需要的輸入。這可能是你的建議,所以我會在挖掘現有項目之前創建一個新的空白項目來測試「問題」。 – Wex

+0

我嘗試了一個簡單的深層鏈接和兩個活動的新項目,並且一切正常。我的問題必須是針對項目的,而不是一切正常的行爲。 – Wex

回答

0

答案是,這是不正常的行爲,必須有較明顯的其他一些東西,是特定的到這個導致這種情況發生的項目。