gpt4 book ai didi

android - 如何使用 Retrofit 2 在 Android 中将应用程序逻辑与网络层分离

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:52:07 27 4
gpt4 key购买 nike

我是 Android 和 Retrofit 的新手,我遇到了一个问题。

我想让我说“ServerCommunication”类(singelton),其中完成了所有 Retrofit 魔术,并且它将具有完成 REST 调用的公共(public)方法。

我想在我的 Activity 中使用这个“ServerCommunication”实例来调用 Rest 服务,但仅此而已。应用程序逻辑应该在 Activity 中完成。因此,通过这种方式,某些 Activity 登录在“ServerCommunication”中调用方法 Login(POJORequest),其中通过 Retrofit 框架完成实际 REST 调用并返回一些 POJOResponse。因此 Activity 不关心 REST 通信,而 ServerCommunication 不关心什么逻辑应该应用于来自 REST 服务的响应。

对于改造 2,我不明白如何阻止 Activity 等待改造的响应以及如何返回它。好吧,我可能认为我可以在 Activity 中使用一些回调方法,以便可以从 OnPostExecute() 中的 ServerCommunication 调用这些方法,以应用一些基于响应数据的逻辑。只是我认为它应该是更简单的方法。

好吧,为了澄清上面所有这些困惑,想象一下简单的情况:您在主要 Activity 中有数据,您将这些数据传递给您的通信类,在该通信类中完成 REST 调用并接收响应。必须验证此响应才能继续。并且您希望此验证在主要 Activity 中完成,而不是在通信类中完成。

使用 Retrofit2 在 Android 中执行此操作的模式是什么?

提前致谢

最佳答案

我通常做的事情:

  • 创建您的界面(您拥有所有 REST 方法 - GET 和 POST 等)
  • 创建一个使用相应方法进行实际调用的类(请参阅接口(interface) REST 方法)。我会称它为 ServiceAPIImplementor 之类的东西。这是您实际创建 Retrofit 适配器的地方。
  • 在您的 Activity 中,创建您的实现类的一个实例并调用这些方法并传递预期的参数。
  • 调用方法后,您可能应该显示一个进度对话框,让用户知道正在发生某些事情。
  • 当调用onResponseonFailure 方法时,使用事件模式(EventBus 库?)通知 Activity 网络操作已完成。一旦 Activity 收到通知,它就应该关闭进度对话框并相应地更新 UI - 使用新收到的数据或完成的操作(预期结果)。

我希望这可以帮助您更接近您想要实现的目标!

关于android - 如何使用 Retrofit 2 在 Android 中将应用程序逻辑与网络层分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com