Android 当截击请求被取消时

Android 当截击请求被取消时,android,request,android-volley,Android,Request,Android Volley,我在活动中有一个请求,我需要知道该请求是否已取消,因此我使用Request.isCanceled()签入了onResponse()方法,但它返回false。我不知道什么时候请求真的被取消了,我已经阅读了代码,仍然没有回答。代码揭示了所有问题 这真的取决于时间 一旦调用了request.cancel(),请求就会被标记为取消,这完全取决于它所处的状态。有4种选择: cancel()在缓存检查之前被调用-请求被其run循环中的CacheDispatcher丢弃(第94行) cancel()在缓存检查

我在活动中有一个请求,我需要知道该请求是否已取消,因此我使用
Request.isCanceled()
签入了
onResponse()
方法,但它返回false。我不知道什么时候请求真的被取消了,我已经阅读了代码,仍然没有回答。

代码揭示了所有问题

这真的取决于时间

一旦调用了
request.cancel()
,请求就会被标记为取消,这完全取决于它所处的状态。有4种选择:

  • cancel()
    在缓存检查之前被调用-请求被其
    run
    循环中的
    CacheDispatcher
    丢弃(第94行)

  • cancel()
    在缓存检查后但在实际执行请求之前没有缓存响应的请求上被调用-请求被
    NetworkDispatcher
    在其
    run
    循环(第102行)中丢弃

  • cancel()。这意味着,当调用
    onResponse
    onError
    时,请求没有被取消,并且在那里检查请求(就像您所做的那样)将始终返回false

  • cancel()
    在交付后被调用-什么都没有发生,太晚了

  • 我不太清楚您的具体情况,是谁取消了请求,您为什么要检查,但希望这些信息足以帮助您解决问题。

    代码揭示了所有问题

    这真的取决于时间

    一旦调用了
    request.cancel()
    ,请求就会被标记为取消,这完全取决于它所处的状态。有4种选择:

  • cancel()
    在缓存检查之前被调用-请求被其
    run
    循环中的
    CacheDispatcher
    丢弃(第94行)

  • cancel()
    在缓存检查后但在实际执行请求之前没有缓存响应的请求上被调用-请求被
    NetworkDispatcher
    在其
    run
    循环(第102行)中丢弃

  • cancel()。这意味着,当调用
    onResponse
    onError
    时,请求没有被取消,并且在那里检查请求(就像您所做的那样)将始终返回false

  • cancel()
    在交付后被调用-什么都没有发生,太晚了


  • 我不太了解你的具体情况,谁取消了请求,你为什么要检查,但希望这些信息足以帮助你。

    谢谢和平。实际上,我在一个活动中有一个带有相同标记的服务器请求,在请求执行之前我会显示一个加载对话框,现在我想在所有请求被取消后隐藏加载对话框,所以我需要检查请求是否被取消。但是作为您的回答,我不能签入“onResponse()”方法。我会试试另一种方法,或者你能给我一些意见吗?3号有什么办法吗?请看我的问题:谢谢和平。实际上,我在一个活动中有一个带有相同标记的服务器请求,在请求执行之前我会显示一个加载对话框,现在我想在所有请求被取消后隐藏加载对话框,所以我需要检查请求是否被取消。但是作为您的回答,我不能签入“onResponse()”方法。我会试试另一种方法,或者你能给我一些意见吗?3号有什么办法吗?请查看我的问题:
    我想在所有请求取消后隐藏加载对话框,因此我需要检查请求是否已取消。
    如果不取消请求,则不会取消请求。
    我想在所有请求取消后隐藏加载对话框,因此,我需要检查请求是否已取消。
    如果您不取消请求,请求将不会被取消。