Как заставить Python Alarm работать в фоновом режиме, не заставляя приложение ждать его? - PullRequest
1 голос
/ 15 апреля 2019

Я использую appjar для создания приложения на Python, которое включает функцию установки будильника в определенное время / дату.Однако, исходя из моей простой реализации, при вызове функции будильника в коде приложение просто будет бесконечно ждать срабатывания будильника, прежде чем допустить что-либо еще.

Я хочу иметь возможность перемещаться по приложению, не дожидаясь тревоги.Каков наилучший способ сделать это?

Вот мой код тревоги:

def setAlarm(year, month, day, hour, minute, second):

    now = datetime.datetime.now()
    date = datetime.date(year, month, day)
    time = datetime.time(hour, minute, second)
    alarmTime = datetime.datetime(year, month, day, hour, minute, second)

    while now < alarmTime:
        print("not yet")

    mixer.music.load('Alarm.wav')
    mixer.music.play(-1)

    sound = True

    while(sound):
        print("Alarm")

1 Ответ

0 голосов
/ 15 апреля 2019

Выезд Python Timers .Если это не сработает, ваше решение будет включать в себя какую-то многопоточность или многопроцессорность, так что вы можете одновременно запустить два пути выполнения.

Вы должны иметь возможность установить таймер длякороткое время.Когда таймер выключается, имейте код, который он запускает, когда он проверяет состояние, которое вы ожидаете.Если это условие все еще не выполнено, пусть этот код запустит новый таймер, чтобы подождать еще немного.Когда вы создаете и запускаете таймер, управление немедленно возвращается к вашему коду, так что вы можете продолжать и делать другие вещи.

...