如何在向RestAPI Android请求数据时处理Internet连接

时间:2016-05-20 04:26:34

标签: c# android visual-studio-2015 xamarin.android internet-connection

我有asynctask从RestAPI请求JSON文件,问题出在webservice发送JSON数据之前,我的连接已丢失,并因此而获得错误。我已经ConnectivityManager检查连接是否可以运行asynctask来请求JSON。如何在asynctask运行时处理?

这是我的ConnectivityManager功能:

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

        }

我正在使用Visual Studio 2015和Xamarin构建Android App。

提前致谢

1 个答案:

答案 0 :(得分: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;
    }

}

还在清单上添加权限

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