将链接深度链接到启动器/主要活动而不是深层链接

问题描述:

当应用在后台时访问深层链接时,启动正确的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

答案是,这是不正常的行为,必须有较明显的其他一些东西,是特定的到这个导致这种情况发生的项目。