Я создаю приложение для социальных сетей. Пользователь по имени Фред может
- скачать собственный профиль Фреда и увидеть его на экране
- посмотреть на собственных последователей Фреда
- увидеть, что Сара следует за Фредом
- нажмите на имя Сары, чтобы загрузить профиль Сары
- посмотрите на последователей Сары
- увидите, что Фред следует за Сарой
- нажмите на имя Фреда, чтобы снова увидеть его собственный профиль.
На этом этапе стек приложений в приложении выглядит следующим образом:
Фред <Сара <Фред </p>
Мне нужен экземпляр User
в обоих Фредах экраны, чтобы быть тем же самым экземпляром. Поскольку User
- это ChangeNotifier
, если Фред вносит изменения в свою учетную запись на верхнем экране профиля Фреда и дважды нажимает кнопку Назад, то на нижнем экране профиля Фрид должны отображаться сделанные изменения.
Стек пользовательских экранов может стать сколь угодно глубоким, когда пользователь перемещается по приложению.
Моя идея состоит в том, что когда виджет UserScreen
запрашивает объект User
, программа сначала проверяет кэш памяти всех User
объектов, используемых в настоящее время перед вызовом JSON API центрального сервера.
Я хочу, чтобы объекты User
собирались мусором, когда они больше не нужны Widget
.
Как мне сохранить кэш в памяти, который не требует ручного увеличения и уменьшения количества ссылок в методах виджетов initState
и dispose
? Есть ли что-то вроде слабого набора в Дарт, который я могу использовать?
Спасибо !!!