Java 应用程序链接助手Android Studio在第一个应用程序活动中打开

Java 应用程序链接助手Android Studio在第一个应用程序活动中打开,java,android,android-manifest,android-app-links,Java,Android,Android Manifest,Android App Links,我使用Android Studio中的“应用链接助手”来配置将通过我的应用打开的链接 一切正常 但我的问题是,当我通过应用程序打开链接时,它会打开在我单击链接的前一个应用程序中定义的活动 例如: 如果我点击WhatsApp中的链接,我会看到如下内容: 当我使用该应用程序打开时,该应用程序将在WhatsApp中打开,如下图所示: 那么,我如何仅在我的应用程序中打开应用程序,而不在WhatsApp或其他应用程序中打开应用程序 下面是此活动的my AndroidManifest.xml代码: &

我使用Android Studio中的“应用链接助手”来配置将通过我的应用打开的链接

一切正常

但我的问题是,当我通过应用程序打开链接时,它会打开在我单击链接的前一个应用程序中定义的活动

例如:

如果我点击WhatsApp中的链接,我会看到如下内容:

当我使用该应用程序打开时,该应用程序将在WhatsApp中打开,如下图所示:

那么,我如何仅在我的应用程序中打开应用程序,而不在WhatsApp或其他应用程序中打开应用程序

下面是此活动的my AndroidManifest.xml代码:

 <activity android:name=".extraLinks"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        >
        <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="http"
                android:host="www.jtube.live" />
        </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="https"
                android:host="www.jtube.live" />
        </intent-filter>
       
    </activity>

更新:我检查了我的Gmail和Chrome应用程序,如果我从这些应用程序打开,其工作正常,因此我的Whatsapp应用程序问题仅限于…尝试以下操作:

<intent-filter android:label="app_label">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.LAUNCHER"/>
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
       android:scheme="https"
       android:host="www.jtube.live" />
</intent-filter>

当活动A启动活动B时,默认行为是:

在当前任务中创建活动B的新实例,并将其推送到后堆栈

要自定义此类行为,有一些选项:

  • 向启动特定活动的意图添加标志
  • 为正在启动的活动设置
    launchMode
    属性
当我们谈论其他应用程序时,第一个选项超出了您的控制范围

您在WhatsApp和Gmail应用程序中面临不同的行为,原因如下:

Gmail为每个HTTP链接定制意图,因此,应用程序中的活动在新任务中启动。WhatsApp应用程序在启动处理特定HTTP链接的任何活动时不指定此标志

在您的情况下,自定义此行为的唯一方法是为处理应用程序链接的目标活动使用
launchMode
属性。有两个可能的值适用于您的案例:
singleTask
singleInstance

查看以下链接以了解其工作原理:

  • )
  • )
每个人都能帮忙吗?我找不到答案!请在AndroidManifest.xml中为URL映射到的活动提供一个定义。@Бааааааааааааааа!您是否尝试通过其他应用程序(如Gmail)的链接打开您的应用程序?我不能复制这种行为。@是的,从gmail和chrome它工作得很好!我不知道该怎么办:(我试过你最近的upadte,但它仍然不起作用