在 MVVM 中检查互联网连接的最佳位置在哪里?

Dor*_*ean 6 android mvvm

我有一个apiClass进行所有网络调用的程序,我想我的选择是:

  1. activity在/内进行检查fragment

  2. apiClient在班级内进行检查

我确信有更好的选择。

编辑

这个答案提出了我的第二种选择。有更好的方法吗?

小智 2

您可以在任何地方添加用于互联网连接的方法,但根据我的理解,对于代码/方法方法重用,您可以创建 Util 类,或者您可以将其添加到 Application 类中。也可以参考下面的方法。

public static boolean getConnectionStatus(Context context) {
    ConnectivityManager mConnectivityManager;
    NetworkInfo mNetworkInfoMobile, mNetworkInfoWifi;

    mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    mNetworkInfoMobile = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    mNetworkInfoWifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    try {
        if (mNetworkInfoMobile.isConnected()) {
            App.connectivityStatus = 1;

            return true;
        }
    } catch (Exception exception) {
        // exception.printStackTrace();
    }

    if (mNetworkInfoWifi.isConnected()) {
        App.connectivityStatus = 1;

        return true;
    } else {
        App.connectivityStatus = 0;
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)