python - 有没有办法取消Kivy中的UrlRequest?

标签 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

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

最佳答案

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

还有一种方法是使用on_* 事件和尽可能小的timeout,它可以触发你的函数。

示例:如果您想在该时间后取消它,请将超时设置为 1 秒,并让 UrlRequest 在它这样做时对您执行 ping 操作,即

  1. 比随意停在某个地方使用更安全
  2. 减少重新发明轮子的行数

关于python - 有没有办法取消Kivy中的UrlRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40004431/

相关文章:

python - 带函数的返回函数

python - Kivy:奇怪的 Button on_touch_down 行为?

python - Kivy-如何从服务器持续接收数据并使用kivy更新界面

python - 如何将卷积应用于立体声音频信号?

python - 转置 Pandas 数据帧列中的值

python - 使用自定义估算器控制纪元

python - OS X : Self Packaged Kivy-Application does not work

python - 在 Python 2.5 中的嵌套 For Range 循环中传递参数

python - 标签 : Entering long text onto screen

python - 如何向 Kivy For Android 添加模块?