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 bedankt sich.
  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 bedankt sich.
  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 - Android ProgressDialog Forum Datum
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung Mittwoch um 08:19 Uhr
[Info/Diskussion] Android O - Änderung an der Architektur Android App Entwicklung 18.05.2017
[UMFRAGE/INFO/DISKUSSION] Kotlin, die neue Programmiersprache für Android Android App Entwicklung 18.05.2017
[GESCHLOSSEN] Android Studio -> Telefongespräch über App Android App Entwicklung 16.05.2017
[GELÖST] Android PHP MySQL Android App Entwicklung 05.05.2017
[ERLEDIGT] Android Studio meint ich soll lokale Variablen verwenden Android App Entwicklung 29.04.2017
[ERLEDIGT] Android Project: hat jemand das schon mal gehabt? Android App Entwicklung 20.04.2017
[INFO/DISKUSSION] Developer Preview Android O Android App Entwicklung 21.03.2017
[ERLEDIGT] Welche Schriftarten werden von Android intern unterstützt ? Android App Entwicklung 16.03.2017
Zuständige Libraries für Harwarekomponenten im Androidstudio finden Android App Entwicklung 08.03.2017