Я использую динамические ссылки Firebase в своем приложении для Android.В своей деятельности я использую этот код для получения ссылки:
public Uri getLink(){
Uri deepLink = null;
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "getDynamicLink:onFailure", e);
}
});
return deepLink;
}
После того, как я открою свою динамическую ссылку из браузера / приложения, я хотел бы использовать ее в другом классе, поэтому я вызываю этот getLink () метод, чтобы получить DeepLink, но я получаю нулевое значение.После того, как я открыл другую ссылку, я получил предыдущий DeepLink.Наверное, потому, что он работает асинхронно.Как я могу ждать, пока я получу URL-адрес или как я могу решить, чтобы получить URL-адрес после вызова моего метода getLink ()?