android - 我们如何从 Intent 中删除深层链接数据

标签 android deep-linking

这就是我在 Activity 中处理深层链接的方式。

我想知道,在完成处理后,如何将其从 Intent 中删除?

@Override
public void onCreate(Bundle savedInstanceState) {
    Utils.updateTheme(this);

    super.onCreate(savedInstanceState);

    Uri uri = this.getIntent().getData();
    if (uri != null && uri.isHierarchical()) {
        if (Constants.INVESTING_DEEP_LINK_PATH.equals(uri.getPath())) {
            // Processing deep link...

            // How can I remove deep link information from intent, after
            // finished procesing deep link...
        }
    }
}

当再次执行此 Activity onCreate 时,我想阻止相同的数据。例如,在配置更改期间。


根据OP,我们可以使用以下方式,在完成处理后从 Intent 中删除深层链接信息。然而,它会产生另一个问题。

@Override
public void onCreate(Bundle savedInstanceState) {
    Utils.updateTheme(this);

    super.onCreate(savedInstanceState);

    Uri uri = intent.getData();
    if (uri != null && uri.isHierarchical()) {
        if (Constants.INVESTING_DEEP_LINK_PATH.equals(uri.getPath())) {
            // Processing deep link...

            intent.setData(null);
            setIntent(intent);
        }
    }
}
  1. 点击电子邮件中的深层链接。
  2. 我们能够从 Intent 中找到深层链接。
  3. 按主页键
  4. 点击电子邮件中的深层链接。
  5. 无法再从 Intent 中找到深层链接。

最佳答案

正如@vlatkozelka 提到的,您需要做的就是:

Intent clonedIntent = getIntent();
clonedIntent.setData(null);

并且您可以使用 clonedIntent

关于android - 我们如何从 Intent 中删除深层链接数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45676629/

相关文章:

android - 将 'com.google.firebase:firebase-analytics' 用于 Firebase 分析?

android - KMM + 撰写 : Unresolved reference: drawable

android - 使用 Android 深层链接时,assetlinks.json 文件的用途是什么?

android - 为什么我无法在我的 Android 应用程序中使用 Retrofit 在 POST 请求中成功发送 JSON

java - 如何从绑定(bind)到 Android 父 Activity 的 fragment 访问服务功能?

ios - goo.gl 不适用于深层链接

android - 深层链接不适用于 Android

react-native - 当从链接打开应用程序时,React Native firebase onLink 函数没有得到任何回调

ios - 当应用程序被杀死时,React Native 深度链接不起作用

android - Sugar ORM 中的 SugarContext.init(this) 是什么