我已经成功实现了firebase动态链接,但未能将缩短的链接从任务中删除,以便它可以在其他类中使用任何帮助? 这是我的代码:
Uri Shortlink;
protected void onCreate(Bundle savedInstanceState)
{
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
.setLongLink(Uri.parse(linkHere))
.buildShortDynamicLink()
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>()
{
@Override
public void onComplete(@NonNull Task<ShortDynamicLink> task)
{
if (task.isSuccessful())
{
// Short link created (THIS WORKS FINE)
Shortlink = task.getResult().getShortLink();
Log.i("CHEK 1", "shortLink = " + Shortlink);
}
else
{
// Error
}
}
});
// I want this shortlink out of this task here. But i am getting (Null)
Log.i("CHEK 2", "shortLink = " + Shortlink);
}
答案 0 :(得分:2)
任务是异步的。您只能在添加到其中的侦听器中获取结果。试图让任务等到结果准备就绪是一个坏主意,因为你会阻塞主线程。这可能会导致您的应用ANR。
您应该重写代码以处理侦听器内部 任务的结果,就像使用CHEK 1行一样。