В моем приложении flutter у меня есть виджет ConnectivityStatus
, который отображает текущий статус подключения приложения к моему Raspberry Pi. В initState
моего виджета я подписываюсь на таймер, чтобы проверять соединение каждые 5 секунд и соответствующим образом обновлять состояние, а затем отказаться от подписки при удалении.
Проблема в том, что когда несколько экранов используют виджет ConnectivityStatus
, например, при настройке навигатора стека, у меня теперь есть две одновременные подписки, поскольку ни один из экземпляров не удален. Это вызывает появление множества избыточных, ненужных запросов.
На самом деле я хочу либо поделиться одним экземпляром виджета на нескольких экранах, либо иметь одно глобальное состояние, к которому могут обращаться несколько экземпляров.
Как я могу добиться этого или какие другие рекомендуемые решения моей проблемы?