public void invokeLater(Runnable r){
  queue.add(r);
synchronized (this) {
    if (synchronizer == null) {
      runQueue();
    }
 else {
      synchronizer.activate();
    }
  }
}

public void invokeLater ( Runnable r ) { queue . add ( r ) ; synchronized ( this ) { if ( synchronizer == null ) { runQueue ( ) ; } else { synchronizer . activate ( ) ; } } }
add a new update to run at any appropriate time .
