So verarbeite ich Deep-Link in meiner Aktivität.Wie können wir Deep-Link-Daten aus der Absicht entfernen
Ich fragte mich, wie kann ich es aus Absicht entfernen, nachdem ich es fertig bearbeitet hatte?
@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...
}
}
}
Ich möchte die gleichen Daten verhindern, wenn diese Aktivität onCreate
erneut ausgeführt werden. Zum Beispiel während Konfigurationsänderungen.
Gemäß OPs können wir den folgenden Weg verwenden, um Deep-Link-Informationen aus der Absicht nach der Verarbeitung zu entfernen. Es wird jedoch ein anderes Problem ergeben.
@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);
}
}
}
- Drücken Sie auf der Deep-Link in E-Mail.
- Wir sind in der Lage, die tiefe Verbindung von Absicht zu finden.
- Drücken Sie die Home-Taste
- Drücken Sie auf den Deep-Link in E-Mail.
- Der Deep-Link von Intent kann nicht mehr gefunden werden.
Haben Sie setIntent (newIntent) versucht? wo der newIntent nur ein "Klon" des alten ist, nur mit setData (null). – vlatkozelka