Was ist die Standardmethode, um auf future.isDone() == true zurück auf den aufrufenden Thread (main) der aufrufbaren warten?Nicht blockierende Methode, um aufrufbares Ergebnis zurückzugeben
Ich habe versucht, ein Ergebnis auf den aufrufenden Thread (Haupt-Thread) durch eine asyncMethod() zurückgeben. AsyncMethod() gibt sofort zurück, löst jedoch vor der Rückgabe zuerst einen Prozess aus, der zu einer Broadcast-Absicht zurück zum Hauptthread führt. Im Hauptthread schaue ich nach future.isDone(), aber leider gibt future.isDone() nur die Hälfte der Zeit zurück.
ExecutorService pool = Executors.newSingleThreadExecutor();
Callable<Boolean> callable = new Callable<Boolean>(){
public Boolean call() {
Boolean result = doSomething();
callbackAsync(); //calls an async method that returns immediately, but will trigger a broadcast intent back to main thread
return result;
}
};
new broadCastReceiver() { ///back on main thread
...
case ACTION_CALLABLE_COMPLETE:
if (future.isDone()) // not always true...
future.get();
}