Hallo zusammen,
ich habe eine Frage zum Thema Threading/Nebenläufigkeit:
Ausgangssituation:
Ich habe eine Klasse MyConnection, die
1. Eine Runable beinhaltet, um den Datenstrom einer Socketverbindung auszuwerten
2. Eine Methode beinhaltet, die erst diesen Socket aufmacht und dann den Thread für die Runable startet:
public class Connection{
// ...
// 1. --------------------
private Runnable runnable = new Runnable() {
public void run() {
while (true) {
// Socketverbindung auswerten
}
}
}
};
// ...
// 2. --------------------
public void open() throws UnknownHostException{
try {
socket = new Socket("192.168.0.1", 25000);
} catch (Exception e) {
// ...
}
thread = new Thread(runnable);
thread.setName("Connection thread");
thread.start();
connected = true;
}
}
Alles anzeigen
Wenn ich nun in meiner MyAppActivity zB in der onCreate() ein Objekt dieser Klasse erstellen möchte, hängt der Socket ja zunächst mal im Main Thread, was ja werder sinnvoll noch erlaubt ist. Nur: Wie strukturiere ich das besser?
- Das Öffnen des Sockets mit in die run()-Methode packen (vor die Endlosschleife)?
- Das Objekt der Klasse MyConnection noch einmal in einer anderen Klasse "kapseln" (Also eine neue Klasse MyWrapper implements runable bekommt eine Methode run(), in der ich das Objekt erzeuge; aus meiner Activity erstelle ich dann ein Objekt von MyWrapper)?
- ...?
Vielen Dank schonmal,
FargoTof