1. Bobert, 03.12.2010 #1
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Hallo,

    ich möchte den ProgressDialog 1 Sekunde anzeigen und dann Schiessen.
    Wenn ich das wie folgt mache funktioniert das nicht, oder bei this.wait(2000) wird eine Exception gewurfen.

    Wie kann ich das verwirklichen? Danke!

    Gruß Bobert

    Code:
        ProgressDialog progress = ProgressDialog.show(TryDialog.this, "", "Loading. Please wait...", true);
                
        progress.show();
                
        try {
            Thread.sleep(1000);
            //this.wait(1000);
        } catch (Exception e) {
            returnValues = (TextView)findViewById(R.id.returnValues);
            returnValues.setText(e.toString());
        }        
                
        progress.cancel();
    
     
  2. Lilithian, 03.12.2010 #2
    Lilithian

    Lilithian Android-Hilfe.de Mitglied

    Code:
    final ProgressDialog progress = ProgressDialog.show(TryDialog.this, "", "Loading. Please wait...", true);
            
            progress.show();
                    
            Runnable r = new Runnable() {
                @Override
                public void run() {
                    progress.cancel();
                }}; 
                    
            Handler mHandler = new Handler();
            mHandler.postDelayed(r, 1000);
    Zur Erklärung: in der Methode run von Runnable überschreibst du, was nach Ablauf der Zeit passieren soll, Runnable r übergibst du dann an einen Handler, der die run-Methode nach einer bestimmten Zeit ausführt.
     
    Bobert gefällt das.
  3. FireDragon, 03.12.2010 #3
    FireDragon

    FireDragon Neuer Benutzer

    Hiho,
    EDIT: Lilithian war ein paar minuten schneller :) die Lösung sieht auch etwas schöner aus ; ) Aber trotzdem meine Idee:


    probier das mal hier aus:

    Code:
            
    new Thread(new Runnable() {
                public void run() {
                    progress.show();
                    try {
                      Thread.sleep(10000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                     }
                progress.cancel();
                }
            }).start(); 
    Damit erzeugst du einen Nebenläufigen Thread, der auf das Android UI zugreift über den progressdialog, und dann diesen Thread einschläft für 10 Sekunden, anschließend den Dialog schließt.
     
    Zuletzt bearbeitet: 03.12.2010
    Bobert gefällt das.
  4. Bobert, 03.12.2010 #4
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Hallo Lilithian, Hallo FireDragon,

    danke euch. Ja beide Versionen von euch funktionieren!

    Danke euch beiden
    Gruß Bobert
     
  5. Fr4gg0r, 03.12.2010 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    w0t?

    progress.show() in nem nicht gui Thread? Sollte nicht funktionieren dürfen.
     
  6. FireDragon, 03.12.2010 #6
    FireDragon

    FireDragon Neuer Benutzer

    also ich hatte es voher getestet, und es funktioniert aufjedenfall.. ^^
    auch wenns vlt eigentlich keine Gute Lösung ist, aber gerade damit bekommt man ja das GUI blockiert :p
     
  7. Bobert, 03.12.2010 #7
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Hallo,

    @Fr4gg0r Definitiv funktioniert folgendes! Aber warum meinst Du das es nicht funktioniert, das habe ich nicht verstanden.

    Gruß Bobert

    Code:
    final ProgressDialog progress = ProgressDialog.show(TryDialog.this, "", "Loading. Please wait...", true);
               
    new Thread(new Runnable() {
        public void run() {
            progress.show();
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            progress.cancel();
        }
    }).start();
    
     
  8. Fr4gg0r, 03.12.2010 #8
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Ja so funzt es, aber auch nur weil das progress.show() nichts macht.
    Kannst ja mal folgendes probieren
    PHP:
    ProgressDialog progress = new ProgressDialog(getApplicationContext());
    new 
    Thread(){
      public 
    void run(){
        
    progress.show();
        
    progress.dismiss();
      }
    }
    ;)
     
  9. Bobert, 04.12.2010 #9
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    Hallo,

    bei deiner Version kommt folgende Fehlermeldung. "Cannot refer to a non-final variable progress inside an inner class defined in a different method"

    Gruß Ralf
     
  10. Fr4gg0r, 04.12.2010 #10
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Klugscheißer. :D

    Dann mach den ProgressDialog eben final und probiers dann.
     
  11. Bobert, 04.12.2010 #11
    Bobert

    Bobert Threadstarter Erfahrener Benutzer

    :tongue:

    Gruß Bobert :D
     
Die Seite wird geladen...
Similar Threads Forum Datum
Videos stoppen immer und Tastatur verschwindet Samsung Galaxy S7 Edge (G935F) Forum 18.05.2017
S3 geht bei Handbewegung nicht immer an Samsung Gear S3 Forum 20.05.2017
Magisk: root verschwindet immer wieder Root / Custom-ROMs / Modding für Moto G4 Plus 21.05.2017
Gear S3 stellt Verbindung zum iphone 7 nicht immer wieder her Samsung Gear S3 Forum 21.05.2017
Samsung Galaxy S7 Edge - Freisprechen ist, ungewollt, immer aktiviert Samsung Galaxy S7 Edge (G935F) Forum 22.05.2017
Galaxy S6, Einstellungen stürzt immer ab :( Samsung Galaxy S6 (G920F) / S6 Edge (G925F) Forum 23.05.2017
Bekomme immer Meldung Musik anhalten Samsung Galaxy S7 Edge (G935F) Forum 23.05.2017
Eingabeauforderung Aktivierung von Apps schaltet sich immer aus HTC Allgemein Mittwoch um 23:09 Uhr
Thor WLAN - seit 7.0 immer wieder Abbrüche / Meldung SIM-Processor/ Play-Dienste kaputt? Vernee Thor / Thor E Forum Freitag um 12:13 Uhr
System Keyboard vergisst immer Einstellung zu T+ vs Full ZTE Axon 7 Forum Freitag um 21:40 Uhr

Users found this page by searching for:

  1. android wait in a runnable

    ,
  2. android wait

    ,
  3. android sleep wait