如何在 android 中恢复深度 link 中的应用程序?

how to resume app in deep link in android?

我正在尝试将 deep-link 添加到我的应用程序,用户做了一些事情然后浏览器启动然后通过单击按钮返回到应用程序,问题是我需要恢复 activity 而不是再次启动它。我通过 adb shell 中的脚本测试了 deep link,它工作正常但不是来自浏览器。

我的代码如下所示:

<activity
        android:name=".activity.MapsActivity"
        android:label="@string/title_activity_maps">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="me"
                android:host="test" />
        </intent-filter>

</activity>

adb 脚本:

adb shell am start -W -a android.intent.action.MAIN -d "me://test" com.example.myapp

HTML:

<a href="intent://test/#Intent;scheme=me;action=android.intent.action.MAIN;package=com.example.myapp;end">Back To App</a>

使用 'singleInstance'

向 activity 添加启动模式
<activity
    android:name=".activity.MapsActivity"
    android:label="@string/title_activity_maps"
    android:launchMode="singleInstance">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="me"
            android:host="test" />
    </intent-filter>