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,所以这意味着我的所有视图都必须实现该方法!
对话框需要通过视图显示:
- 遵循 MVP 设计模式
- 因为我需要当前上下文来显示对话框。
我正在寻找一个更好的解决方案,以便不必在每次有新视图时都实施相同的方法。
您可以有一个实现 displayErrorDialog(String message)
的 BaseView
,然后您的所有视图都将扩展自 BaseView
。
如果您正在使用 interfaces
,您可以使用 BaseInterface
执行相同的操作,然后您将能够从任何演示者调用您的基本视图方法。
希望对您有所帮助!
我尝试使用 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 设计模式
- 因为我需要当前上下文来显示对话框。
我正在寻找一个更好的解决方案,以便不必在每次有新视图时都实施相同的方法。
您可以有一个实现 displayErrorDialog(String message)
的 BaseView
,然后您的所有视图都将扩展自 BaseView
。
如果您正在使用 interfaces
,您可以使用 BaseInterface
执行相同的操作,然后您将能够从任何演示者调用您的基本视图方法。
希望对您有所帮助!