我正在考虑对我的网络层进行改造。有什么方法可以判断特定异步请求是否在任何给定时刻运行?
例如,我想知道请求是否正在运行,以便我可以在不同时间更新用户界面。我可以通过保留变量来跟踪状态来自己做到这一点,但想知道库中是否已经有一些东西可以做到这一点。
最佳答案
这是我在需要一种方法来跟踪正在运行的请求时通常会做的事情:
- 首先,使用改造,只要您提出请求,您就可以执行以下操作:
- 使用 EventBus 库将事件发布到您的 Activity 或 fragment 。现在,这可以在回调的 onSuccess() 方法或相同的 onError() 方法中完成。
- 在您的 Activity 或 fragment 的 onEvent(EventClassName event) 方法中,您可以简单地检查事件中的 [isRunning] 等变量,以确保如果事件仍在运行,您可以更新 UI相应地,如果没有,则分别执行您需要执行的操作。
- 当请求完成时,显然 isRunning 将为 false,然后您可以按照用户的预期更新 UI。
- 我在这里推荐 EventBus 只是因为它更容易将您的应用程序代码与它分离;您可以发送不同的事件来通知您请求的不同状态的 Activity ,然后以这种方式更新您的用户界面。
你可以找到 EventBus here
希望对您有所帮助!
关于android - 如何确定给定请求是否正在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22187298/