Как сохранить состояние страницы для флаттера телефона - PullRequest
1 голос
/ 04 августа 2020

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

Ответы [ 3 ]

0 голосов
/ 04 августа 2020

Вы должны проверить Flutter Preferences для локального хранилища, чтобы помочь вам сэкономить timeStamps. А также используйте AppLifecycleState , чтобы слушать, когда AppLifecycleState. paused, AppLifecycleState.inactive или AppLifecycleState.resumed

Когда приложение приостановлено или неактивно, сохранить таймер в настройках, когда он возобновился, продолжить с последнего сохраненного времени плюс разница во времени с момента последнего времени, когда приложение было неактивным или приостановлено .

0 голосов
/ 04 августа 2020

Вы можете использовать didChangeAppLifecycleState с SharedPreferences или вы также можете использовать пакет hydratedblo c, и он автоматически обработает сохранение состояния.

  didChangeAppLifecycleState(AppLifecycleState state) {
    if(state == AppLifecycleState.detached) {
      //save to SharedPreference
    }
  }
0 голосов
/ 04 августа 2020

Состояние существует, пока страница (маршрут) находится в памяти, и как только вы удаляете страницу из памяти, состояние теряет свои данные. Это похоже на оперативную память компьютера - приложение хранится в оперативной памяти, и, когда оно не используется, эта память освобождается. Для сохранения данных я бы предложил использовать локальное хранилище (сохранение на устройство и загрузка с него). Вот ссылка на следующую статью: Как сохранить в локальное хранилище с помощью Flutter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...