1

我尝试使用 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,所以这意味着我的所有视图都必须实现该方法!

该对话框需要由视图显示:

  • 遵循MVP设计模式
  • 因为我需要当前的上下文来显示对话框。

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

4

1 回答 1

2

您可以拥有一个BaseView实现displayErrorDialog(String message),然后您的所有视图都将从BaseView.

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

我希望这有帮助!

于 2017-08-11T18:03:02.147 回答