Handler postDelayed und Faden.sleep()

Habe ich einen thread.Schlaf-und eine handler-postDelayed in meinem code:

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

Nachdem die handler, und nachdem der Benutzer die Taste drücken, die ich habe:

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

Wenn die user lange genug warten ich kann die "ich lief" in meinem log. Aber wenn der Benutzer die Taste drücken, bevor die Verzögerung ist, es scheint, dass die postDelayed nie eine chance zu führen. Meine Frage ist, funktioniert der thread.sleep() Durcheinander mit dem hf postDelayed?

Edit: Der Zweck dieses Kodex ist, dass ich möchte, um fortzufahren, das Programm nur nach DISCONNECT_DELAY Sekunden bereits verstrichen. Also, wenn der Benutzer klickt zu früh, ich muss warten, bis die verstrichene Zeit fertig zu stellen.

In einfachen Thread.sleep Blöcke der andere Prozess während postDelayed nicht.

InformationsquelleAutor Jace | 2013-09-10

Schreibe einen Kommentar