有没有办法取消Kivy的UrlRequest?

时间:2016-10-12 17:06:54

标签: python kivy

有没有办法取消Kivy的UrlRequest?

def got_url(req, result):
    print(result)
req = UrlRequest('http://httpbin.org/delay/2', got_url)  # Request lasts 2 seconds

def my_callback(dt):
    print('Request cancelled.')
    # sort of req.cancel()
Clock.schedule_once(my_callback, 1)  # But some event happens after 1 sec. and I want to cancel request

这只是一个例子:我知道超时,我想取消一些任意事件的请求。

1 个答案:

答案 0 :(得分:1)

Afaik除了UrlRequest.timeout之外别无他法,这可以转化为礼貌地等待并安全关闭任何有害物质。它使用Thread,可能也可能不危险。甚至更多,例如打包成exe或其他形式的二进制文件,它可以创建一个锁,因为有些东西坏了。我认为你希望它的使用方式只会引发问题。

使用on_*事件的另一种方式是尽可能小timeout,这可以触发你的功能。

示例:如果要在这段时间后取消它,请将超时设置为1秒,并让UrlRequest在执行此操作时ping你,这是

  1. 使用比在随机地点停止使用更安全
  2. 用于重新发明轮子的线路数量较少