Thread oder kein Thread?

S

shantejo

Neues Mitglied
3
Hallo,

Ich habe eine verständnisfrage zum Thema Threads. Und zwar wollte ich eine paar Sachen in einen extra Thread verlagern und habe mir dazu eine neue Klasse erstellt:

Code:
public class MeineKlasse extends Thread {
    private volatile String rueckgabe[] = new String[5];

    public String meineFunktion() {
        //....
        return rueckgabe;
    }

    //.....
}
Und dann wollte ich einfach im main-Thread Mothoden dieser Klasse aufrufen.

//....
MeineKlasse mk = new MeineKlasse();
mk.run();
String s[] = mk.meineFunktion();
/....

Ziel des ganzen war die NetzworkOnMainException zu vermeiden, allerdings funktioniert das nicht so richtig. (Sprich die Exception kommt immernoch).

Meine Frage wäre jetzt ob das ganze nun ein Thread ist oder nicht bzw. ob die Funktion dann unter dem neu erstellen, oder dem UI-Thread angearbeitet wird.

Und falls es kein richtiger Thread ist: Gibt es einfache Wege in zu einem zu machen? Ansonsten würde ich es nochmal mit dem AsyncZask probieren.

grüße
 
Den Artikel habe ich schon gesehen,

meine Frage war ja auch nicht, wie man die NetzworkOnMainThreadException umgehen kann, sondern ob es sich bei mir um einen gültigen Thread handelt bzw. warum der Fehler kommt obwohl ich eigentlich eine Thread-Klasse erstellt habe :)
 
Nein es reicht nicht eine Thread Klasse zu erstellen.
wenn du in deinem Fall mk.meineFunktion() aufrufst wird diese ganz normal im gleichen Thread ausgeführt aus dem du sie aufgerufen hast.

Wenn etwas in einem eigenen Thread laufen sollte es runable Interface implementieren und dann mit
Thread thread = new Thread(new MeineKlasse());
thread.start(); aufgerufen werden.

Es wird dann nur das, was in der run Methode steht bzw. aufgerufen wird in einem anderen Thread ausgeführt.
 
  • Danke
Reaktionen: shantejo

Ähnliche Themen

W
  • waltsoft
Antworten
3
Aufrufe
723
waltsoft
W
W
  • waltsoft
Antworten
4
Aufrufe
943
waltsoft
W
A
Antworten
1
Aufrufe
637
swa00
swa00
Zurück
Oben Unten