zwei Runnable gleichzeitig

G

Gast2

Gast
Kann man zwei Runnable (handler.postDelayed) gleichzeitig laufen lassen?

Bzw. wie unterscheidet man in der run()-Methode welcher run sich gerade meldet?
 

Stroker89

Bekanntes Mitglied
Natürlich kann man zwei Threads gleichzeitig laufen lassen.

Unterscheiden kann man in dem in dem man die passenden Messages (Message.what) zu dem Handler des Aufrufenden schickt.

Gruß
 
G

Gast2

Gast
Leider verstehe ich nicht, wie Du das meinst / wie das geht.

Da die Klasse (ein Objekt von) Message bis her gar nicht im Spiel war, kann ich euch keine Methode .what() aufrufen (die es bei Message() auch gar nicht gibt.

Wie ich nun dem Handler-Objekt eine Message mitgeben kann konnte ich nicht herausfinden.

Mein letzter Lösungsansatz war, zwei Handler-Objekte zu erzeugen.
Beide rufen .postDelayed(this, interval) auf.

Bei beiden endet das in der Methode run().
Nun dachte ich eigentlich, ich könnte herausfinden welcher handler trigert, aber dafür habe ich leider auch keine Methode gefunden. :(
 

turtle

Top Contributor
Vielleicht wird es mit einem kleinen Beispiel deutlicher?
Java:
public class MeinRunnable implements Runnable {
	private final String name;

	public MeinRunnable(String name) {
		this.name = name;
	}

	@Override
	public void run() {
		postDelayed();
	}

	private void postDelayed() {
		System.out.println("postDelayed von " + name);
	}
	public static void main(String[] args) throws InterruptedException {
		MeinRunnable meinRunnable1 = new MeinRunnable("Nummer 1");
		MeinRunnable meinRunnable2 = new MeinRunnable("Nummer 2");
		Thread t1 = new Thread(meinRunnable1);
		Thread t2 = new Thread(meinRunnable2);
		t1.start();
		t2.start();
		Thread.sleep(5000); // Nach 5 Sekunden beenden wir das Programm
	}

}
 

Neue Themen


Oben