0

Ich habe asynctask zum Anfordern von JSON-Datei von RestAPI, das Problem ist, bevor Webservice JSON-Daten senden, meine Verbindung verloren gegangen sind, und erhalten Fehler deswegen. Ich habe bereits ConnectivityManager, um zu überprüfen, ob Verbindung herstellen kann ich die asynctask zum Anfordern von JSON ausführen. Wie behandelt man, wenn asynctask bereits läuft?Wie behandelt man die Internetverbindung beim Anfordern von Daten zu RestAPI Android

Dies ist meine ConnectivityManager Funktion:

public bool isOnline() 
     { 
      ConnectivityManager cm = (ConnectivityManager)GetSystemService(ConnectivityService); 
      NetworkInfo activeConnection = cm.ActiveNetworkInfo; 
      return activeConnection != null && activeConnection.IsConnected; 

     } 

Ich bin Visual Studio 2015 und Xamarin mit Android App zu bauen.

Vielen Dank im Voraus

+0

, die Rest-API-Client hinzufügen, die Sie verwenden? –

+0

Welche Fehler bekommen Sie? und bitte geben Sie den Code an, um nach JSON zu fragen –

+0

erhalten Sie Timeout-Ausnahme? –

Antwort

1
import android.content.Context; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 

/** 
* Net Utils for android 
*/ 
public class NetUtils { 

    /** 
    * @param context the context you're checking connectivity for 
    * @return true if the application can access the internet 
    */ 
    public static boolean hasConnectivity(Context context, boolean roamingOK) { 
     boolean hasConnectivity = true; 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 
     hasConnectivity = info != null && (info.isConnected() || (roamingOK && info.isRoaming())); 
     return hasConnectivity; 
    } 

} 

auch die Erlaubnis auf manifest

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />