D
DiaBloB555
Neues Mitglied
- 0
Hallo,
ich habe folgendes Problem: Ich habe eine Funktion, in der ich einen AsyncTask ausführe, ich möchte nun jedoch, dass die Funktion erst "zu ende" ist, wenn der AsyncTask beendet ist. Hier der Code:
So funktioniert das jedoch nicht, hat jemand eine Idee ?
ich habe folgendes Problem: Ich habe eine Funktion, in der ich einen AsyncTask ausführe, ich möchte nun jedoch, dass die Funktion erst "zu ende" ist, wenn der AsyncTask beendet ist. Hier der Code:
Code:
final AsyncTask<String, Integer, String> WaitForTTSEngine =
new AsyncTask<String, Integer, String>() {
@Override//Start TTS Engine
protected void onPreExecute () {//Start new TTS Engine
InAsyncTask = true;
System.out.println("AsyncTask: \"WaitForTTSEngineInBG\": onPreExecute");
StartNewTTSEngine();
}
@Override//Wait for TTS Engine
protected String doInBackground(String... arg0) {//Wait for TTS Engine
System.out.println("AsyncTask: \"WaitForTTSEngineInBG\": doInBackground" + "\n");
while (!TTSEngineIsReady) {
System.out.println("Waiting for new TTSEngine");
try {Thread.sleep(200);}
catch (InterruptedException e) {e.printStackTrace();}
}
if (TTSEngineIsReady) {System.out.println("TTSEngine Is Ready !" + "\n");}
return "Done";
}
@Override
protected void onPostExecute (String WrapperString) {//Use TTS Engine
System.out.println("AsyncTask: \"WaitForTTSEngineInBG\": onPostExecute");
System.out.println("Speaking..");
MyTTSEngine.speak(StringToSpeak, TextToSpeech.QUEUE_FLUSH, null);
InAsyncTask = false;
}
};
WaitForTTSEngine.execute();
Meine "Lösung", die nicht geht..
while (!InAsyncTask){
Thread.sleep(10);
}
//Ende der funktion
So funktioniert das jedoch nicht, hat jemand eine Idee ?