Python странное поведение kivy.clock.Clock.schedule_once () - PullRequest
0 голосов
/ 27 мая 2020

У меня странное поведение 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

Мне это кажется ошибкой. Я что-то не понимаю в Киви?

...