2016-05-31 4 views
0

Ich entwickle eine App und muss eine Toast-Nachricht von einem Thread anzeigen, der in einer anderen Klasse ausgeführt wird. Ich lese über runOnUiThread, aber es funktioniert nicht .. In der Hauptaktivität gibt es einen Aufruf an eine andere Java-Klasse und hier ist die Verbindung zu einem Webserver und ich handle HTTP-Nachrichten vom Server. Hier, wenn ich 204 Nachrichten habe, muss ich einen Toast zeigen. Wie kann ich runOnUiThread implementieren?So zeigen Sie Toast-Nachrichten aus einem Thread in einer anderen Klasse an

Dank

+0

Sie es nicht implementieren, ist es bereits fertig –

+0

zu verwenden Haben Sie bewusst mit _interface_? – Piyush

Antwort

0

Pass Referenz Ihre Aktivität des mit dem Arbeitnehmer Klasse und rufen Sie die runOnUiThread wie diese

activity.runOnUiThread(new Runnable() { 
    public void run() { 
     Toast.makeText(activity, "Your Message here", Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

Ich verstand meine Schuld: In meiner Klasse versuchte ich, meinen Aktivitätskontext aufzurufen, aber ich habe die Referenz nicht bestanden ... Also die Referenz bestanden, es funktioniert .. Danke und Entschuldigung für die Verschwendung von Zeit !!! – Yoshi

+0

@Yoshi Kein Problem. Akzeptiere die Antwort, wenn es geholfen hat. –

0

Ich schlage vor, Sie Retrofit Bibliothek zu verwenden. Es behandelt alle Thread-Sachen für Sie und Sie müssen Rad nicht neu erfinden.

//make request in ui thread 
yourService.getMyData().enqueue(new Callback<YourResponse>() { 

    @Override 
    public void onResponse(Response<YourResponse> response) { 
     //handle responses in ui thread 
     if (response.isSuccess()) { 
      //Toast.makeText().. 

     } else { 
      //error 
     } 
    } 

    @Override 
    public void onFailure(Throwable t) { 
     //toast the error 
    } 

}); 

Schön, oder?

Verwandte Themen