DoEvents anche a me, sopra tutto all'inizio ha creato molti problemi, i generale se hai una sub con doevent chimata in enterpressed di un edittext schianta.
DoEvents non va bene per creare ritardi, ma è ottimo per rinfrescare l'ui dove però non c'è un evento in cui probabilmente java prevede il refresh, come ad esempio negli eventi delle view.
Ho risolto con callsubdelayed.
Una volta capiti i limiti doevent va bene, diventa un problema se il nuovo motore aggiunge criticità a questa istruzione. La sensazione è che Erel stia cercando di levarla, ma non riesce a fornire uno strumento analogo.
Un altro limite di Doevent è che se fa il refresh, l'activity non riceve gli eventi da inpust esterni (touch, click ecc), in questo caso Sleep può essere utile, ma non è semplice in quanto oltre all'attesa sleep fa il return.
Ricapitolando, sleep può essere utile, ma non è la stessa cosa di di Doevent e nemmeno ci assomiglia.