/ / Handover-Ausführung zum Haupt-Thread in Android - Java, Android, Multithreading

Handover-Ausführung zu Haupt-Thread in Android - Java, Android, Multithreading

Ich benutze Runnable, um einige Hintergrundaufgaben inmeine Android-Anwendung. Der Runable kann nach Abschluss der Hintergrundaufgabe einen Callback aufrufen, der vom Aufrufer der Funktion, die Runable implementiert hat, implementiert wird. Nun möchte ich die Ausführung an den Haupt-Thread übergeben, sobald der Callback aufgerufen wird.

public void DoInBackground(Callback callback)
{
Thread thread = new Thread(new Runnable(){
//Execution that to be done in background
//calling callback once the result is obtained
});
thread.start()
}

public void callee(){
DoInBackground(new callback(){
@Override
public void onSuccess(int value){
//Do operations after completion of background task
}
});
}

Ich möchte, dass onSucess auf dem Haupt-Thread ausgeführt wird und nicht auf der neuen ausführbaren Funktion, die in der DoInBackground-Funktion erstellt wurde. Ich weiß, dass es mit einer asynchronen Aufgabe erledigt werden kann. Gibt es eine andere Möglichkeit, dies zu tun?

Antworten:

1 für die Antwort № 1

Sie können eine verwenden Handler zu post ein lauffähig in der UI-Thread-Warteschlange, oder wenn der Kontext die Aktivität ist, können Sie die verwenden runOnUiThread Methode. Das Snippet im Runable wird auf dem UI-Thread ausgeführt


0 für die Antwort № 2

Fügen Sie Ihre Callback-Funktion in die Funktion runOnUiThread ein:

runOnUiThread(new Runnable() {
@Override
public void run() {
// callback function

}
});