如何让firebase短链接完成任务

时间:2017-12-27 22:01:45

标签: java android firebase firebase-dynamic-links

我已经成功实现了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);
 }

1 个答案:

答案 0 :(得分:2)

任务是异步的。您只能在添加到其中的侦听器中获取结果。试图让任务等到结果准备就绪是一个坏主意,因为你会阻塞主线程。这可能会导致您的应用ANR

您应该重写代码以处理侦听器内部 任务的结果,就像使用CHEK 1行一样。