Befehl setBackgroundResources wird erst später ausgeführt

  • Ich habe ein Bild von einem Baby, das, wenn ich auf den Button Schreien klicke, für 4 Sekunden das Bild ändern soll, das ein schreiendes Baby abbildet. Ich schrieb in die onClick Methode setBackgroundResources("neues Bild"), dann dass das Schreigeräusch abgespielt werden soll, dann thread.sleep(4000) und dann dass das Geräusch aufhören soll. Es funktioniert alles, bis auf das Bild, das erst geändert wird, nachdem das Geräusch wieder abgestellt ist, es wird also einfach nicht dann ausgeführt, wann ich es will. Warum denn? Ich finde nichts im Internet darüber und werde langsam verzweifelt. :(

  • du startest erst den mplayer und hälst den UI thraed für 4 sek an.
    Warte zeiten in einen eigenen thraed machen asynctask benutzen.
    Auch der Player sollte in einen eigen thread.
    Deine zeitschleife wird erst am ende des players ausgeführt.da alles in einem thraed. Benutze asynctask für den player in onPostExecute also am ende des thread kannst du das Bild zurücksetzen. Du brauchst somit keine zeitschleife.


    http://www.programmierenlernen…se-threads-und-asynctask/

  • Wie du es machen solltest:
    1. nutze einen asynctask
    2. setze in der onPreExecute methode dein erstes bild, dann setze in der doInBackground methode ein thread sleep und anschließend setzt du in der onPostExecute methode dein neues bild. Lass niemals den mainthread schlafen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!