我们如何从意图中删除深层 link 数据
How can we remove deep link data from intent
这就是我在 Activity 中处理深度 link 的方式。
我想知道,在完成处理后如何将其从意图中删除?
@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...
}
}
}
我想在这个activityonCreate
再次执行的时候防止相同的数据。例如,在配置更改期间。
根据 OP,我们可以使用以下方式,在完成处理后从意图中删除深层 link 信息。但是,它会产生另一个问题。
@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);
}
}
}
- 在电子邮件中按深link。
- 我们能够从意图中找到深层link。
- 按主页按钮
- 在电子邮件中按深link。
- 无法再从意图中找到深层 link。
正如@vlatkozelka 提到的,您需要做的就是:
Intent clonedIntent = getIntent();
clonedIntent.setData(null);
而且你很好用clonedIntent
。
这就是我在 Activity 中处理深度 link 的方式。
我想知道,在完成处理后如何将其从意图中删除?
@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...
}
}
}
我想在这个activityonCreate
再次执行的时候防止相同的数据。例如,在配置更改期间。
根据 OP,我们可以使用以下方式,在完成处理后从意图中删除深层 link 信息。但是,它会产生另一个问题。
@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);
}
}
}
- 在电子邮件中按深link。
- 我们能够从意图中找到深层link。
- 按主页按钮
- 在电子邮件中按深link。
- 无法再从意图中找到深层 link。
正如@vlatkozelka 提到的,您需要做的就是:
Intent clonedIntent = getIntent();
clonedIntent.setData(null);
而且你很好用clonedIntent
。