在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 操作,即
- 比随意停在某个地方使用更安全
- 减少重新发明轮子的行数
关于python - 有没有办法取消Kivy中的UrlRequest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40004431/