如何从Firebase检测连接状态?

时间:2017-02-22 14:26:43

标签: android firebase firebase-realtime-database

我正在尝试在设备未连接到互联网时在我的应用中显示提醒。

问题是firebase在应用程序启动期间默认将connectedStatus返回为false。然后在启动期间自动调用警报。

我通过添加另一个布尔hasConnected找到了解决方法。但如果设备启动时脱机,它不会显示警报!

我该如何解决这个问题?

CODE

private DatabaseReference connectedRef = mFirebaseDatabase.getReference(".info/connected");
Boolean connectedStatus = true, hasConnected = false;

Boolean checkConnectedStatus() {
        connectedRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {
                connectedStatus = snapshot.getValue(Boolean.class);
                if (connectedStatus) {
                    Timber.e("connected");
                } else {
                    Timber.e("not connected");
                    getView().showError(connectedStatus);
                }
                 if(hasConnected && !connectedStatus)
                    getView().showError(connectedStatus);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                System.err.println("Listener was cancelled at .info/connected");
            }
        });
        return connectedStatus;
    }

0 个答案:

没有答案