我在清单文件中添加了此intent过滤器,并且深层链接正在运行。
<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:host="website.in"
android:pathPrefix="/sometag/"
android:scheme="https" />
</intent-filter>
问题是通过深度链接,我的应用程序将在当前应用程序之上启动。如果我在Gmail中并点击了一个链接,那么我的应用就会在Gmail上启动。
如果我的应用已经在后台运行,并且我点击了Gmail中重定向到我的应用的链接,我有两个同时运行我的应用的实例。一个在后台,另一个在Gmail之上。我想一次只运行我的应用程序的一个实例,因此它不在当前应用程序(Gmail)之上。
提到这个链接,但没有工作的解决方案:Deep linking and multiple app instances
终于得到了我的问题的解决方案
android:launchMode="singleTask"
在Android Manifest
中并覆盖onNewIntent
。并检查是否已创建现有实例。
您应该使用Activity的launchMode
属性(取决于您期望发生的事情)。 Documentation is here