Hallo
ich habe mir eben nochmal alles durchgelesen und bin zu dem Schluss gekommen, dass meine Frage vllt spezieller klingt, als sie eigentlich ist, mir hapert es ja an dieser Stelle vllt an einem gewissen Grundverständnis.
Daher möchte ich noch einmal mein Ziel formulieren, ggf. ist ja o.g. Ansatz schon zu falsch und zu verwirrend.. 
Also:
Ich habe ja meine Klasse Connection. Diese dient dazu, die Socketverbindung aufzubauen, auf dem Socket zu lauschen und ggf. auch über entsprechende Methoden etwas darüber zu schreiben.
In meiner MyAppActivity erzeuge ich mir dazu also eine Instanz von Connection und rufe dessen Methode open() auf. Der Socket wird geöffnet und anschließend meine Runnable runnable als neuer Thread gestartet, der im Hintergrund in Endlossschleife auf eingehende Infos wartet und diese bei Bedarf weiter verarbeitet.
Soweit so gut. Das von mir geschilderte Problem, nämlich dass ich einen Socket im MainThread öffnen möchte (nämlich beim aufrufen von open()) ließe sich nun noch umgehen, indem ich den try/catch-Block mit dem Öffnen den Sockets mit in die runnable packe. Dann passiert auch das schon im neuen Thread.
Was aber nun, wenn ich eine weitere Methode, sagen wir sendString(String s) für meine Klasse Connection definieren möchte, mit der man Strings auf den socket schreiben kann:
public void send(String s){
try {
output.write(s);
output.flush();
} catch(IOException ex) {
// ...
}
}
(output ist der OutputStreamWriter vom Socket)
Wie kriege ich es hin, dass auch dieses Schreiben in einem anderen Thread ausgeführt wird? Weil rufe ich aus Meiner MyAppActivity zb. myConnection.send("Hallo!"); auf, geschieht das ja im Hauptthread (dem UI-Thread), oder nicht?
Verwirrte Grüße,
FargoTof