# App Absturz bei Wechsel von WLAN zu mobilem Internet bzw. andersrum



## ThLu (8. Aug 2012)

Hallo zusammen,

ich rufe innerhalb meiner Activity über eine Funktion eine URL auf und lasse mir ein JSON-Objekt zurückliefern. Wenn allerdings während dem Aufruf oder während der Übertragung ein Wechsel von mobilem Internet zum WLAN, aber auch von WLAN zum mobilem Internet stattfindet, oder aber die Verbindung sowohl zum WLAN als auch mobilem Internet abbricht, stürzt meine Applikation ab.


```
public JSONObject connectJSONObject(String url)
    {
    	JSONObject json = null;
    	
    	HttpParams httpParameters = new BasicHttpParams();
    	int timeoutConnection = 2000;
    	HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
    	int timeoutSocket = 2000;
    	HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

    	DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
    	
        // Prepare a request object
        HttpGet request = new HttpGet(url);
        request.setHeader("Accept", "application/json");
        request.setHeader("Content-type", "application/json");
        
        try{
        
        HttpResponse response = httpClient.execute(request);
        
        HttpEntity responseEntity = response.getEntity();

        StatusLine status = response.getStatusLine();
        if (status.getStatusCode() != 200) {
            return new JSONObject("-1");
        }
        
            if (responseEntity != null) {

                InputStream instream;
		instream = responseEntity.getContent();
	        String result= convertStreamToString(instream);
	                
	        json = new JSONObject(result);
	        instream.close();
            }
	                
				} catch (IllegalStateException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				} catch (JSONException e) {
					e.printStackTrace();
				}
        return json;
    }
```

Gibt es eine geeignete Möglichkeit um einen Absturz meiner App zu verhindern und ggfs. einfach eine Toast-Nachricht zu senden "Verbindungsprobleme" oder ähnliches?

Vielen Dank.

Viele Grüße,
Thomas.


----------



## schlingel (8. Aug 2012)

Exception fangen ;-)

Einfach in den Logcat schauen wie die Exception heißt und den nötigen Handler basteln.


----------



## ThLu (8. Aug 2012)

Hallo schlingel,

danke schön für die Antwort. 

Habe allerdings dazu eine Frage und zwar: Wie lese ich geeignet den LogCat aus? 
Wenn ich das Gerät an Eclipse angeschlossen habe, kann ich jedes Logging immer direkt mitlesen, aber das Problem tritt ja gerade draußen (beim Verlassen der Wohnung, etc.) auf. Existiert die Möglichkeit beispielsweise im Nachinein das LogCat z.B. der letzten Stunde, des Tages oder einer speziellen Anwendung auszulesen?

Viele Grüße,
Thomas.


----------



## schlingel (8. Aug 2012)

Ja. Direkt wenn die App abschmiert kann man sich den Fehlerbericht von Google anschauen da steht unter anderem auch die Exception drin. 

Ansonsten bieten sich Frameworks wie Crittercism an um User und deren Probleme zu tracken. Mit Crittercism habe ich gute Erfahrungen, sowohl mit dem Framework und auch dem Support. Kann ich nur empfehlen.


----------



## mjdv (8. Aug 2012)

Versuch doch mal den Verbindungsabbruch zu simulieren, indem du zB Wlan ausschaltest, während du gerade aufs Internet zugreifst mit deiner App. Sollte eigentlich funktionieren.


----------



## ThLu (9. Aug 2012)

Okay, danke euch beiden für die Tipps. 
Ich werde erstmal versuchen den Ablauf zu simulieren, sollte dies nicht geeignet möglich sein, schaue ich mir das Framework an.

Viele Grüße,
Thomas.


----------

