【问题标题】:MVP RxJava2 - managing Network errorMVP RxJava2 - 管理网络错误
【发布时间】:2017-08-11 16:33:28
【问题描述】:

我尝试使用 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 设计模式
  • 因为我需要当前的上下文来显示对话框。

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

【问题讨论】:

    标签: android error-handling mvp rx-java2 android-mvp


    【解决方案1】:

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

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

    我希望这会有所帮助!

    【讨论】:

    • 这就是我的想法。我已经开始实施这样的解决方案。谢谢。如果没有人有更好的解决方案,我会验证你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    相关资源
    最近更新 更多