В моем приложении я получаю динамические c ссылки в моей основной деятельности. Это прекрасно работает, когда пользователь открывает ссылку, запускает приложение и выполняет правильные действия, но динамические c ссылки, похоже, остаются после того, как они были получены в приложении.
Даже после того, как пользователь нажала на ссылку, и она была восстановлена в приложении с помощью FirebaseDynamicLinks.getInstance().getDynamicLink(getIntent())
, пользователь может закрыть приложение и открыть его через некоторое время, а getDynamicLink(getIntent())
все равно вернет ссылку и данные в намерении.
Есть ли способ отбросить ссылку и ее данные, как только они были найдены в приложении? Мне просто нужно сделать setIntent(null)
?
Вот мой MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.ButtonTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handleDynamicLink();
}
private void handleDynamicLink() {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, pendingDynamicLinkData -> {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
if(deepLink!=null){
String gameId = deepLink.getQueryParameter("id");
Intent intent = new Intent(this, MultiplayerActivity.class);
intent.putExtra("gameId",gameId);
startMultiplayerActivity(intent);
}
Log.d(TAG, "handleDynamicLink: bundle: "+deepLink.getQueryParameter("id"));
}
}).addOnFailureListener(this, e -> Log.w(TAG, "getDynamicLink:onFailure", e));
}