Scheme url有时不打开一个新的意图(深度链接)



我有一个自定义方案被解析并在应用程序中接受。大多数情况下,没有任何问题,它创建了一个主活动,一切都如预期的那样。

但是,有时候,它只是简单地重新打开存在的Activity,在这种情况下,它只是简单地从后台恢复,没有新的意图或其他任何东西。

有人有这个问题吗?对于这种没有创建新意图的情况,有什么捕获url方案参数的技巧吗?我几乎无法重现这个问题,但我的客户经常遇到这个问题。

   <activity
        android:name=".Main"
        android:configChanges="keyboardHidden|orientation|screenSize|locale"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <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="xxxxx" />
        </intent-filter>
    </activity>

深度链接应该启动你的意图,但如果它已经启动它不会调用onCreate方法(假设你有解析的东西在那个方法),因此它不会调用解析的东西。如果没有,那么它仍然会失败,因为你正在检查意图数据,这是启动活动的意图的数据,如果活动被打开,那么它没有被你的链接调用,所以它没有数据。这就是为什么只有当你关闭应用程序并按下链接时才有效。

最新更新