code: private void update(long delay) {
          if (willUpdate) {
              return; // Already a pending update scheduled
          }
  
          if (!observing) { return; }
  
          willUpdate = true;
  
          query.getDatabase().scheduleOnQueryExecutor(new Runnable() {
              @Override
              public void run() {
                  update();
              }
          }, delay);
      }
docs: NOTE: update(long delay) is only called from synchronzied LiveQuery methods by lock.
  
  @param delay millisecond