У меня странное поведение kivy.clock.Clock.schedule_once (). Ниже приведен минимальный пример для иллюстрации. Здесь я планирую выполнить 4 события подряд с интервалом в одну секунду. Проблема в том, что первое событие выполняется немедленно, а второе - на 250 мс раньше. После этого он вроде стабилизируется.
#!/usr/bin/env python3
from kivy.app import App
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.logger import Logger
def event1(*ignore):
Logger.info("event1")
def event2(*ignore):
Logger.info("event2")
def event3(*ignore):
Logger.info("event3")
def event4(*ignore):
Logger.info("event4")
class TestApp(App):
def build(self):
return Label(text="test")
def on_start(self):
Logger.info("on_start")
Clock.schedule_once(event1, 1)
Clock.schedule_once(event2, 2)
Clock.schedule_once(event3, 3)
Clock.schedule_once(event4, 4)
if __name__ == '__main__':
TestApp().run()
Вот соответствующая часть журнала:
05-27 17:16:36.602 25055 25126 I python : [INFO ] on_start
05-27 17:16:36.603 25055 25126 I python : [WARNING] [Base ] Unknown <android> provider
05-27 17:16:36.603 25055 25126 I python : [INFO ] [Base ] Start application main loop
05-27 17:16:36.608 25055 25126 I python : [INFO ] [GL ] NPOT texture support is available
05-27 17:16:36.609 25055 25126 I python : [INFO ] event1
05-27 17:16:37.343 25055 25126 I python : [INFO ] event2
05-27 17:16:38.343 25055 25126 I python : [INFO ] event3
05-27 17:16:39.346 25055 25126 I python : [INFO ] event4
Это версия Kivy 1.11.1, python 3.6.9, построено и развернуто на Samsung Galaxy J7 с помощью buildozer 1.0:
buildozer init
buildozer -v android debug deploy run
Мне это кажется ошибкой. Я что-то не понимаю в Киви?