Android App. Webabfrage
lima-city → Forum → Programmiersprachen → Java
abfrage
anfrage
ansatz
code
fehler
hilfe
idee
jemand
leute
machen
monitor
senden
show
starten
string
toast
toaster
url
verwenden
weben
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
christian1603 schrieb:
Du definierst dir eine boolean-Variable, die setzt du anfangs auf true.
Hat jemand eine Idee?
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; }
-
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 ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage