Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Activity blockiert bei HTTP-Call

Das Thema "Activity blockiert bei HTTP-Call" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 07.10.2011, 19:57   #1 (permalink)
Neuer Benutzer

Registriert seit: 07.10.2011
Beiträge: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Activity blockiert bei HTTP-Call

Hallo,

ich sende mit der Bibliothek kSOAP einen SOAP-Request über HTTP an einen Webservice, den ich programmiert habe.

Der Aufruf erfolgt so:

Code:
SoapObject soapRequest = new SoapObject(serviceNamespace, methodGetX);
        soapRequest.addProperty("arg0", result);

        SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        soapEnvelope.setOutputSoapObject(soapRequest);

        HttpTransportSE httpTransport = new HttpTransportSE(location, 30000); // longer timeout is necessary

        try {
            httpTransport.call(soapAction, soapEnvelope);

            Object soapResponse = soapEnvelope.getResponse();
            return soapResponse.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
In der 1. Zeile des try-Blocks blockiert die App dann, bis eine Antwort vom Server angekommen ist.

Gibt es eine Möglichkeit, dass ich trotzdem noch in der App herumklicken kann und sie nicht völlig blockiert? Sowas ist immer relativ hässlich :-)

Danke im Voraus!

Ciao The_Unknown
The_Unknown ist offline   Mit Zitat antworten
Alt 07.10.2011, 20:12   #2 (permalink)
Android-Hilfe.de Mitglied

Modell: Motorola Atrix 4G

Registriert seit: 07.12.2010
Beiträge: 170
Abgegebene Danke: 14
Erhielt 32 Danke für 31 Beiträge
Neeldarax eine Nachricht über ICQ schicken
Standard AW: Activity blockiert bei HTTP-Call

Hi The_Unknown,

ich hab das selbe Problem wie du gehabt.
Leider kann ich dir nicht sagen, wieso Android bis zu zwei Sekunden(so lange) für den Aufruf eines WebServices braucht.

Aber wenn du mit Threads und eine Art Wartebalken arbeitest, dann wird die GUI nicht blockiert. Wenn dann der Aufruf fertig ist, kannst du ihn mit Callback und/oder mit Handler in GUI-Thread wieder navigieren.

Generell gilt, im GUI-Thread keine Berechnungen oder lange aufrufe, genau wie dein Beispiel, durchführen.

HIER der Punkt zu Responsiveness von der Developer-Seite android.com.

regards
__________________
g o o g l e+ plus.neeldarax.de
androidblog www.neeldarax.de
Neeldarax ist offline   Mit Zitat antworten
Alt 09.10.2011, 18:53   #3 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: Activity blockiert bei HTTP-Call

Es gibt nur einen UI Thread der für die Oberfläche von deiner App verantwortlich ist, wenn du nun aufwendige Sachen in diesem Thread ausführst, bzw. auf eine Antwort wartest ausm inet, hängt der Thread

Du musst also alles aufwändige bzw. alles, was dein UI Thread zum warten bewegt, in ein eigenen Thread auslagern. Du musst natürlich darauf achten, dass du keine Zeitlichen Probleme bekommst... zum Beispiel, wenn du mit mehreren Threads auf Daten zugreifst und ein Thread schneller als der andere ist und sie gegebenfalls gleichzeitig auf Daten zugreifen wollen.

Sprich also nicht unkontrolliert Threads starten

Gruß
Michael S
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 10.10.2011, 09:11   #4 (permalink)
Junior Mitglied

Registriert seit: 18.07.2010
Beiträge: 44
Abgegebene Danke: 0
Erhielt 5 Danke für 5 Beiträge
Standard AW: Activity blockiert bei HTTP-Call

Am besten solltest du dir mal AsyncTask | Android Developers
durchlesen.
Da wird genau erklärt wie man das am besten machen sollte.
Solltest du Vorhaben, eine App für android 3.0+ zu entwickeln, wird du es dir zwangsweise aneignen müssen, da eine NetworkOnMainThreadException geworfen wird sobald du im Main Thread Netzwerkaktionen Versuchst.

NetworkOnMainThreadException | Android Developers

mfg
Maddi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Geladene Bytes bei einer Http Verbindung erhalten Stefan Baumgartner Android App Entwicklung 0 23.09.2011 10:02
Activity aus Activity aufrufen mit untersch. Klassenerweiterungen BarneyLovesbeer Android App Entwicklung 4 03.08.2011 17:10
Daten in Activity bei Layoutwechsel erhalten mdolphin Android App Entwicklung 2 07.12.2010 21:11
freimengen bei call meter ng babra Sonstige Apps & Widgets 0 02.03.2010 14:45
call to call verbindung toneinwahl funktioniert mit android nicht lorendan Android Allgemein 6 22.10.2009 10:06




Du liest gerade: "Activity blockiert bei HTTP-Call" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.