Gestionnaire postDelayed et du Fil.sleep()

J'ai un fil.sommeil et un gestionnaire postDelayed dans mon code:

handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        Log.e(TAG, "I ran");
        mIsDisconnect = false;
    }
}, DISCONNECT_DELAY);

Après le code du gestionnaire et après que l'utilisateur presse le bouton, j'ai ceci:

while (mIsDisconnect) {
    try {
        Thread.sleep(DELAY);
    } catch (InterruptedException e) {
        Log.e(TAG, "problem sleeping");
    }
}

Si l'utilisateur attends assez longtemps, je peux obtenir le "j'ai couru" dans mon journal. Mais si l'utilisateur presse le bouton avant l'expiration du délai, il semble que le postDelayed n'est jamais une chance de s'exécuter. Ma question est, est le fil.sleep() mess avec le gestionnaire de postDelayed?

Edit: Le but de ce code est que je veux continuer le programme seulement après DISCONNECT_DELAY secondes est déjà passée. Donc, si l'utilisateur clique au début, je dois attendre que le temps écoulé à la fin.

En simple Thread.sleep bloque les autres processus, alors que postDelayed ne le fait pas.

OriginalL'auteur Jace | 2013-09-10

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *