我正在使用Google Cloud Endpoint Java api后端并在android studio中连接Android应用程序。
我正在从Android应用程序调用我的后端api以检查用户名可用性。
每次文本更改事件都会检查用户名。
因此,当文本更新时,我希望取消之前的请求。
我如何实现它?
我想到的一种方法是向服务器发送带有请求的随机字符串,并忽略所有收到的响应,但最新的除外。 但这并没有取消请求,网络仍在接收响应。此外,我必须发送一些额外的数据来跟踪请求。
那么,如何取消呢?有没有办法用google cloud endpoint api实现它?
其他信息: 我正在使用Android中的AsyncTask进行谷歌云端点请求。我读了一些关于取消异步任务的内容。可以用这种方式吗?
答案 0 :(得分:2)
取消对API的请求不是一种选择,因为它很可能会在您的取消订单到达服务器时处理并在返回的路上。取消Asynctask可能是一种选择,但您仍然需要考虑线程和网络延迟问题。
我认为最安全,最简单的方法是你已经建议的方法,在你的请求中添加一个序列,只有在你收到序列中的最新回复时才更新UI。