2017-05-19 4 views
-5

Ich bin ein bisschen verwirrt. Ich habe Hintergrunddienst, der runnable Klasse enthält. Im Service-Body rufe ich eine Methode auf, die einen neuen Thread mit meinem ausführbaren Objekt verbindet (in onCreate-Methode und onStartCommand). Nachdem ich einen neuen Thread gestartet habe, rufe ich einige Methoden der runnable Klasse auf, die mit netwrok funktionieren und ich habe Exception im Hauptthread.Ausnahme auf Haupt-Thread

Meine Frage ist: Wenn ich Methode des getrennten Fadens von meinem Dienst rufe, wird es am Hauptdienstfaden oder am zweiten Faden ausgeführt?

public class myService extends Service { 

public class myThread implements Runnable, LogListener, .... { 
//networking methods herer 
} 
private void handleServiceStart{ 
    if (!serviceStarted) { 
     Thread thread = new Thread(myThread); 
     thread.start();  
    } 
    thread.methodWithNetowrking(); 
    ... 
} 
public void onStart() { 
    this.handleServiceStart(); 
} 
public int onStartCommand() { 
    this.handleServiceStart();  
} 

Antwort

0

Android-Dienst wird auf dem Hauptthread so dass jeder Faden u es schaffen bilden, wird es ein Kind Faden der Haupt-Thread sein und u kann jede Netzwerkbetrieb auf Hauptthread nicht ausführen.

Sie müssen asynctask dafür verwenden

Verwandte Themen