通过url方案从其他应用程序打开backgrounded应用程序时启动主要活动

时间:2017-01-03 10:19:46

标签: android android-activity deep-linking

我刚刚实施了与我的应用的深层链接。我已经为我的主要活动添加了意图过滤器。当用户启动我的网址方案时,我解析它并在活动中处理以根据参数显示正确的信息。当我的应用程序从头开始时,它运行良好。

    <activity
    android:launchMode="singleTask"
    android:name="com.my.app.ui.activities.MainActivity"
    android:screenOrientation="portrait"
    android:configChanges="orientation|screenSize|">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="myapp-scheme"/>
    </intent-filter>
</activity>

当用户在堆栈上打开其他活动并进入后台时,会出现问题。现在,如果通过调用我的方案网址从后台恢复此应用程序,则所有活动仍在堆栈中,并且主要活动不会显示。 我该如何解决这个问题? 我想回到主要活动,但如果应用程序是从其他应用程序或以正常方式启动的,我就无法获取信息。

1 个答案:

答案 0 :(得分:1)

您需要通过在清单中添加以下行(适用于ManiActivity),将 MainActivity 设为singleTask:

机器人:launchMode =&#34; singleTask&#34;

然后,覆盖 MainActivity 中的 onNewIntent(),并根据深层链接数据处理导航。希望这可以回答您的问题。