【发布时间】:2016-05-16 10:52:44
【问题描述】:
当应用在后台访问深层链接时,正确的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>
我的深层链接活动是:
<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>
【问题讨论】:
-
难以置信。 Android 不会自行启动
SplashActivity。你确定你在PostActivity中没有一些代码来检查应用程序是否已初始化,如果没有,则重定向到SplashActivity?请从PostActivity.onCreate()发布代码。 -
谢谢。我想如果它是“预期的行为”,这可能是我需要的输入,那就是答案。这可能是您的建议,因此我将创建一个新的空白项目来测试“问题”,然后再深入研究现有项目。
-
我尝试了一个带有简单深度链接和两个活动的新项目,一切正常。我的问题必须是特定于项目的,而不是正常行为。
-
您找到解决方案了吗?究竟是什么问题? @Wex
标签: android android-activity deep-linking activity-lifecycle