1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Trancegott, 12.02.2012 #1
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Hallo,
    ich bin völlig neu in der Android Programmierung und bitte deswegen um verständniss.
    Kann mir jemand erklären, oder vielleicht einen link posten wo es gut erklärt wird, warum ein ProgressDialog unter Umständen nicht sofort angezeigt wird? ich habe schon andere Posts gelesen, aber ehrlichgesagt verstehe ich von UI-Thread und Async Task herzlich wenig :(

    Wäre nett, wenn mir jemand helfen kann.
     
    Zuletzt bearbeitet: 12.02.2012
  2. v Ralle v, 12.02.2012 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Kennst du dich mit Multithreading und Java allgemein aus?
     
  3. Trancegott, 12.02.2012 #3
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    Multithreading kenne ich nicht....

    Falls es jemandem etwas bringt:
    Code:
    	public void onBackPressed() 
    	{
    		ProgressDialog dialog = ProgressDialog.show(AppActivity.this, "", "This could take a while...", true);
    		dialog.show();
    		write();
    		dialog.dismiss();
    	   return;
    	}
    
     
  4. v Ralle v, 12.02.2012 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Trancegott gefällt das.
  5. swordi, 12.02.2012 #5
    swordi

    swordi Gewerbliches Mitglied

    den code sollte aber keiner übernehmen. wenn deine write methode länger braucht, wirds nen schönen anr geben.
     
  6. DieGoldeneMitte, 12.02.2012 #6
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Und wenn der write schnell ist, ist der Dialog weg, bevor man ihn wahrgenommen hat.
     
  7. Trancegott, 12.02.2012 #7
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    okay, jetzt weiß ich grob was threads sind...

    Undi ich hab jetz auch verstanden was bei mir immer falsch lief und jetzt funktionierts :)

    Code:
    @Override
    	public void onBackPressed() 
    	{
    		ProgressDialog dialog = ProgressDialog.show(BitchAppActivity.this, "Uploading...", "This could take a while", true);
    		ArbeitsThread ladeThread = new ArbeitsThread(this, dialog);
    		ladeThread.start();
    	    return;
    	}
    	public class ArbeitsThread extends Thread
    	{
    		private ProgressDialog meinFortschritt;
    		
    		public ArbeitsThread(Activity activity, ProgressDialog fortschritt)
    		{
    			super();
    			meinFortschritt = fortschritt;
    		}
    
    		@Override
    		public void run() 
    		{
    			write();
    			meinFortschritt.dismiss();
    			finish();
    		}
    	}
    
     
  8. Trancegott, 12.02.2012 #8
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    @DieGoldeneMitte
    Ist der Code so, wie ich ihn jetzt gepostet habe anr-resistent?^^
     
  9. DieGoldeneMitte, 12.02.2012 #9
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Der Code ist zwar ANR sicher, aber du machst ein GUI update von außerhalb des Haupt-Threads. (Das ist unter Android nicht richtig)

    Unter Android nimmt man statt eines Threads einen AsyncTask (Tutorial hier: Android Threads, Handlers and AsyncTask - Tutorial). Der UI Update, sprich der dialog.dismiss() kommt dann in die onPostExecute(). So kannst du dann nebenbei auch sicher sein, dass bei einer Exception im write der Dialog auch verschwindet etc...
     
    Trancegott gefällt das.
  10. Trancegott, 12.02.2012 #10
    Trancegott

    Trancegott Threadstarter Neuer Benutzer

    ah okay, danke!
    Dann würde ich jetzt nur noch gerne wissen, wie ich den fehler abfragen kann, dass keine Verbindung hergestellt werden konnte oder ein Timeout erfolg...
     
  11. DieGoldeneMitte, 12.02.2012 #11
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Das kann man zB, indem man diesen Fehler im doInBackground abfängt, auswertet und entsprechende Werte an onPostExecute (ob per Parameter oder Instanzvariable bleibt dir überlassen) übergibt, in denen man dann die passende Meldung raushaut.
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[ERLEDIGT] LL zur Laufzeit erstellen, Abstand zwischen LL und LL möglich ? Android App Entwicklung 06.09.2017
[OFFEN] App schließt nach Öffnen sofort Android App Entwicklung 04.09.2017
[ERLEDIGT] Um einen Zusatz in einem Programm unter Android zu machen Android App Entwicklung 22.08.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[OFFEN] SVN Commit in Android Studio funktioniert nicht mehr Android App Entwicklung 07.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
[ERLEDIGT] Android O Neue Fonts in XML Methode Android App Entwicklung 27.07.2017
[ERLEDIGT] Daten/Code meiner App speichern? Android App Entwicklung 27.07.2017
Du betrachtest das Thema "Android ProgressDialog" im Forum "Android App Entwicklung",