2017-01-03 79 views
0

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

<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> 

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

回答

1

您需要通过添加下面一行在清单(用于ManiActivity),让您的MainActivity为singleTask:

机器人:launchMode = “singleTask”

然后,覆盖onNewIntent()MainActivity并处理基于深层链接数据的导航。希望这回答你的问题。

+1

谢谢!这就是我正在寻找的东西。 :) – objc3p0

+0

这怎么可能是正确的答案?如果你看问题中发布的manfest,OP已经指定'launchMode =“singleTask”'! –

+0

另外,这不可能是正确的,因为如果现有任务在MainActivity上已经有另一个Activity,则不会调用MainActivity.onNewIntent()。 –

相关问题