Здравствуйте.
Поясните, пожалуйста, правильно ли я понимаю ситуацию:
Во Flutter, когда мы переходим от одной страницы к другой при помощи навигации вот так:
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (_) {
return SomePage();
}));
}
то мы создаем новый объект, который записывается в историю и храниться там, пока мы эту историю не очистим или пока не вызовем Navigator.pop() до предыдущей страницы.
Если так, то не случиться ли рано или поздно утечка памяти?
Что если пользователь будет ходить только при помощи push между тремя страницами, а каждая страница будет создавать какое-то состояние и это состояние все время будет запоминаться в истории?
Я провел эксперимент: сделал в Stateful виджете-странице метод dispose(), но он не вызывался у меня ни разу, получается, объекты создаются и не удаляются (это, в принципе, правильно, есть же ссылки на объект из истории навигации).
Странно как то: если пользователь будет ходить по интернет-магазину по разным страницам товаров, а каждая страница будет тянуть из интернета данные о товаре и все это будет оставаться в памяти, то как бы ее скоро может не хватить.
Стоит этого опасаться или все же нужно как то иначе организовывать навигацию?