用于通知“活动”的网络状态代码的模式

时间:2019-02-15 19:53:57

标签: android retrofit2

我有许多活动,其中有几个片段。这些片段所做的部分工作是进行经过身份验证的网络调用。令牌可能会过期。发生这种情况时,我将在网络层中看到401。与哪个片段发起了启动注销过程所需的网络活动时,首选的方法是向上通讯回堆栈?换句话说,当网络层获得401时,我想将其传达回UI,即即使此后也可能调用了许多其他Activity,也需要注销用户。这通常是通过在应用程序中处理自定义异常来完成的,但是我想知道是否还有一种特定的模式比其他更受欢迎。也许使用实时数据?

1 个答案:

答案 0 :(得分:0)

您应该分层。每一层应负责单个任务。有很多方法可以做到这一点,但是您可以使用MVVM Google方法,其中包括:

  • M(模型):持久化/检索它们的数据类和存储库。
  • V(查看):活动/片段,观察VM公开的数据对象(LiveData),并调用VM的动作。
  • VM(ViewModel):公开操作,例如login,内部调用一个调用API的存储库(例如,使用Retrofit2),当它接收到结果时,它将更新V观察到的数据对象。

看看: