MVP RxJava2 - 管理网络错误

MVP RxJava2 - managing Network error

我尝试使用 RxJava2 遵循 MVP 设计模式。我是新手。 当我从 API 请求数据时,在我的 Presenter 中我这样称呼我的模型:

mModel.getDataFromAPI()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(data -> {
        // Do something with the data
    }, throwable -> {
        // A wild error appears!
        // TODO: Display a dialog
    });

出现错误时,我想向用户显示一个带有消息的对话框。

所以我想的是在视图上创建一个 displayErrorDialog(String message)。但问题是:我在应用程序的任何地方都调用了 API,所以这意味着我的所有视图都必须实现该方法!

对话框需要通过视图显示:

我正在寻找一个更好的解决方案,以便不必在每次有新视图时都实施相同的方法。

您可以有一个实现 displayErrorDialog(String message)BaseView,然后您的所有视图都将扩展自 BaseView

如果您正在使用 interfaces,您可以使用 BaseInterface 执行相同的操作,然后您将能够从任何演示者调用您的基本视图方法。

希望对您有所帮助!