Я разрабатываю Pomodoro Timer
в React-Native
.
На переднем плане: пользовательский интерфейс отслеживает оставшееся время, вычитая дату прибытия минус текущую дату . Кроме того, он отслеживает завершенные циклы. (техника Pomodoro
утверждает, что каждые 4 цикла происходит длительный перерыв). cycles
, finish_date
и time_remaining
используются как state
переменные (я использую hooks
) для правильного обновления DOM (и для некоторых логик c тоже).
В фоновом режиме: установлен будильник для уведомления пользователя об истечении времени (react-native-alarm-notification
).
Если приложение все время остается на переднем плане, оно работает точно так же, как Но если между тем я использую другие приложения или просто помещаю свое приложение в фоновый режим, в большинстве случаев приложение сбрасывается, поэтому я теряю весь прогресс. Я полагаю, что операционная система в большинстве случаев сбрасывает приложение, когда оно находится в фоновом режиме.
Так что оно может уведомлять, когда время истекло, Но в части пользовательского интерфейса это похоже на приложение было запущено в первый раз (но на самом деле оно переходило только из фонового режима на передний план). В основном его состояние возвращается к значению по умолчанию.
Я изо всех сил пытаюсь найти решение этой проблемы.
PS Я сделал несколько тестов, фактически Android убивает приложение в двух сценариях ios: 1 - если оно остается в фоновом режиме в течение нескольких минут 2 - если запущены тяжелые приложения. Я думаю, что обе проблемы связаны с памятью, я пытался установить характеристики батареи "не оптимизирован", но это не помогло.