Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MVP,检查互联网连接的地方_Android_Mvp - Fatal编程技术网

Android MVP,检查互联网连接的地方

Android MVP,检查互联网连接的地方,android,mvp,Android,Mvp,我正在安道尔ID应用程序上实施MVP模式,我怀疑检查互联网连接的最佳位置在哪里。 在打任何网络电话之前,我通常会检查一下是否有互联网连接 那么,我应该在活动或演示者中的哪里查看它呢? 我认为演讲者会是一个好地方,所以它决定做什么,但是我不能100%确定我是否应该把它放在活动中,避免给演讲者打电话 我认为演讲者不是个好地方。演示者应该询问模型中的新数据,如getData()。演示者不应该知道它是来自本地数据库还是来自服务器。因此,在演示者处检查互联网连接不是一个好主意 如果使用存储库模式,演示者将

我正在安道尔ID应用程序上实施MVP模式,我怀疑检查互联网连接的最佳位置在哪里。 在打任何网络电话之前,我通常会检查一下是否有互联网连接

那么,我应该在活动演示者中的哪里查看它呢?
我认为演讲者会是一个好地方,所以它决定做什么,但是我不能100%确定我是否应该把它放在活动中,避免给演讲者打电话

我认为演讲者不是个好地方。演示者应该询问模型中的新数据,如getData()。演示者不应该知道它是来自本地数据库还是来自服务器。因此,在演示者处检查互联网连接不是一个好主意

如果使用存储库模式,演示者将要求模型/存储库获取数据。模型将首先将本地数据发送给演示者。同时,它将发送服务器请求(如果有网络连接)下载新数据,并将新数据发送给演示者

所以我认为,网络检查必须在存储库/模型上进行。您可以拥有实现实际网络检查代码的Util类。并从存储库中调用该方法,如
AppUtil.isNetworkConnectionAvailable()

有关更多信息,请参阅:

解决方案:- 您应该在BaseActivity类中检查internet连接的可用性,然后扩展该活动,我认为这是更好的做法

我在我的项目中是这样做的:-

public boolean isInternetAvailable() {
    return internet.isAvailable();
}

谢谢你的方法和链接。我再检查一遍!如果你有不同的看法,一定要告诉我。:)如果我发现了什么,我会在这里发帖的。然而有很多不同的方法,问题是依赖于项目的方法比其他方法更适合。谢谢。您有解决方案吗?您可以从存储库向演示者发送错误回调中的错误代码。根据错误代码,演示者可以选择显示“无网络,请重试”消息。您能提供一个示例吗?我正在这样做,但问题是广播接收器太慢,它的回调是在活动结束后触发的。