我在Andorid App上实施MVP模式,我对检查互联网连接的最佳位置有疑问。 我经常在进行任何网络通话之前检查是否有互联网连接。
那么,我应该在活动或演示者中查看哪些内容? 我认为Presenter会是一个不错的地方,所以它决定要做什么,但是我不能100%确定如果我将它放在活动中并且避免打电话给Presenter。
答案 0 :(得分:10)
我不认为Presenter是个好地方。 Presenter应该询问模型中的新数据,例如getData()。演示者不应该知道它是来自本地数据库还是来自服务器。因此,检查Presenter上的互联网连接不是一个好主意。
如果使用存储库模式,Presenter将要求模型/存储库获取数据。该模型将首先将本地数据发送给演示者。同时,它将发送服务器请求(如果有网络连接)以下载新数据,并将新数据发送到Presenter。
所以我认为,网络检查必须在Repository / model上。您可以使用Util类来实现实际的网络检查代码。并从存储库调用该方法,如AppUtil.isNetworkConnectionAvailable();
有关详细信息,请参阅:https://github.com/googlesamples/android-architecture/tree/todo-mvp/
答案 1 :(得分:-2)
<强> 强>
我在我的项目中这样做: -
public boolean isInternetAvailable() {
return internet.isAvailable();
}