kostenloser Webspace werbefrei: lima-city


Android App. Webabfrage

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Hey Leute,
    ich schreibe grade eine Android app die eine Webabfrage nach einen Button klick macht.
    Nun soll es aber nur möglich sein eine neue Webabfrage zu starten nachdem die erste beendet bzw. abgebrochen wurde.
    Hat jemand eine Idee? Hier mein Script:


    HttpClient httpclient = new DefaultHttpClient(); 
           HttpPost httppost = new HttpPost("www.de"); 
    
    
     public void klick(View view) {
    
    
        String result = "Keine internetverbindung "; 
             ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); 
             nameValuePairs.add(new BasicNameValuePair("sdd","1")); 
             nameValuePairs.add(new BasicNameValuePair("sd","1")); 
             try 
             { 
          
             httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
             HttpResponse response = httpclient.execute(httppost); 
             HttpEntity entity = response.getEntity(); 
             result = EntityUtils.toString(entity); 
             } 
             catch(Exception e) 
             { 
            	 Toast.makeText(getApplicationContext(), "Es ist ein Fehler aufgetreten", Toast.LENGTH_SHORT).show();
             } 
    
        }
        
    }



    Danke :)

    Beitrag zuletzt geändert: 9.5.2012 17:11:45 von christian1603
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    christian1603 schrieb:
    Hat jemand eine Idee?
    Du definierst dir eine boolean-Variable, die setzt du anfangs auf true.
    Später wenn du deine Anfrage sendest kommt dort ein false rein und wenn false in der Variablen steht und der User eine weitere Anfrage senden will gibst du ihm eine Fehlermeldung.
    Wenn die Anfrage fertig abgearbeitet ist setzt du die Variable wieder auf true.

    Code-Ansatz:
    boolean neueAnfrageErlaubt = true;
    public void klick(View v) {
    	if(!neueAnfrageErlaubt) {
    		Toaster.makeText(getApplicationContext(), "Naaa, du kannst des ned machen!", Toast.LENGTH_LONG).show();
    		return;
    	}
    	neueAnfrageErlaubt = false;
    	try {
    		machDeineInternetAnfrage();
    	} catch(Exception e) {
    		// irgend ein Fehler
    	}
    	neueAnfrageErlaubt = true;
    }
  4. mittels der variablen könntest du das machen, oder wenn du es sauber machen willst, mit hilfe eines monitors.

    Und was du unbedingt ändern solltest: Deine Web-Abfrage niemals direkt in einem UI-Thread starten lassen.
    Ich würde dafür an deiner Stelle einen AsynTask verwenden (http://developer.android.com/reference/android/os/AsyncTask.html).
    Wenn du das nicht machst, blockierst du dein UI doch solange die Anfrage nicht durch ist, und das ist ja ein No-Go ;)
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!