【问题标题】:Android deep linking and launchmodeAndroid 深度链接和启动模式
【发布时间】:2020-01-11 15:32:25
【问题描述】:

我有一个带有底部导航的单一活动应用程序,我已向其中添加了深层链接。深层链接指向导航图中的片段。我通过这个深层链接传递了一些数据,然后进一步处理。

当我从 whatsapp 打开深层链接并关闭应用程序时,链接工作正常。它重定向到正确的片段。

我已将导航图添加到 MainActivity

<nav-graph android:value="@navigation/fragment"/>

但是当应用程序打开并且我点击 whatsapp 中的链接时,应用程序会进入前台,但深度链接不起作用。甚至不会加载正确的片段。

我尝试将 android:launchMode="singleTask" 更改为 "singleTop",但随后应用程序在 whatsapp 中打开。

对此有什么建议吗?

【问题讨论】:

    标签: android deep-linking bottomnavigationview


    【解决方案1】:

    我找到了解决方案。我的活动launchMode 仍然是singleTask。

    所以在我的 MainActivity 中,我覆盖了以下内容:

    @Override
    protected void onNewIntent(Intent intent) {
        setIntent( intent );
        super.onNewIntent( intent );
    }
    

    然后我可以在onResume() 中调用getIntent() 并执行剩余的任务。

    onNewIntent 只是应用程序在后台时的入口点。因此,所有处理和 UI 更改都必须通过 onResume 处理。

    如果我错了或者你有更好的方法,请随时纠正我。

    【讨论】: