Android MVP,检查互联网连接

Android MVP, where check internet connection

我正在 Andorid 应用程序上实施 MVP 模式,我对检查互联网连接的最佳位置有疑问。 我通常在进行任何网络呼叫之前检查是否有互联网连接。

那么,我应该在 ActivityPresenter 的什么地方查看? 我认为 Presenter 会是一个不错的地方,所以它决定做什么,但是我不是 100% 确定我是否应该将它放在 activity 中并避免调用 Presenter。

我觉得 Presenter 不是个好地方。 Presenter 应该向模型询问新数据,例如 getData()。演示者不应该知道它是来自本地数据库还是来自服务器。因此,在 Presenter 上检查 Internet 连接不是一个好主意。

如果使用 Repository 模式,Presenter 会要求 model/repository 获取数据。模型会先将本地数据发送给presenter。同时,它会发送服务器请求(如果有网络连接)下载新数据,并将新数据发送给Presenter。

所以我认为,网络检查必须在 Repository/ 模型中。您可以使用 Util class 来实现实际的网络检查代码。并从存储库中调用该方法,例如 AppUtil.isNetworkConnectionAvailable();

更多信息,请参考:https://github.com/googlesamples/android-architecture/tree/todo-mvp/

解决方法:-

您应该检查 BaseActivity class 中的互联网连接可用性,然后扩展 activity 是我认为更好的做法。

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

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