我正在尝试在设备未连接到互联网时在我的应用中显示提醒。
问题是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;
}