2017-08-11 55 views
1

我嘗試使用RxJava2遵循MVP設計模式。我是新來的。 當我請求來自API的數據,在我的演講我打電話給我的型號那樣:MVP RxJava2 - 管理網絡錯誤

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設計模式
  • ,因爲我需要在當前語境下,以顯示該對話框。

我正在尋找更好的解決方案,不必每次都有新的視圖實現相同的方法。

回答

1

你可以有一個BaseView實現displayErrorDialog(String message),然後所有的意見將從BaseView延伸。

如果您使用的是interfaces,您可以使用BaseInterface做同樣的事情,然後您可以從任何演示者調用基本視圖方法。

我希望這有助於!

+0

這就是我正在想的。我已經開始實施這樣的解決方案。謝謝。如果沒有人有更好的解決方案,我會驗證你的答案。 – Eselfar