Banch onInitFinished 即使在超时后也没有被调用

Banch onInitFinished not called even after timeout

 Branch branch = Branch.getInstance();
        branch.setRetryCount(1);
        branch.setRetryInterval(10);
        branch.initSession(new Branch.BranchUniversalReferralInitListener() {
            @Override
            public void onInitFinished(BranchUniversalObject branchUniversalObject, LinkProperties linkProperties, BranchError branchError) {

我的onInitFinished在用户网速慢的时候有时不会被调用。我已经看到应用程序在尝试初始化分支时卡住了超过 30 秒

Alex 来自 Branch:

这是目前已知的边缘情况。我们正在努力修复,但现在您可以像下面这样实现超时:

final CountDownLatch countDownLatch = new CountDownLatch(1);
    new Thread(new Runnable() {
        @Override
        public void run() {
            branch.initSession(new Branch.BranchUniversalReferralInitListener() {
                @Override
                public void onInitFinished(BranchUniversalObject branchUniversalObject, LinkProperties linkProperties, BranchError error) {
                    if(countDownLatch.getCount() > 0) {
                        countDownLatch.countDown();
                        postBranchInitSession(null);
                    }
                }
            });
            try {
                countDownLatch.await(5000, TimeUnit.MICROSECONDS);
            } catch (InterruptedException ignore) {
                postBranchInitSession(null);
            }
        }

    }).run();