как приложение Flutter может получать уведомления о нехватке памяти?

#flutter #memory-management

#flutter #управление памятью

Вопрос:

У меня есть кэш данных. Извлечение некоторых данных обходится дорого .. другие данные вполне одноразовые. Данные могут быть довольно большими и могут привести к тому, что ОС попросит приложения освободить память.

В Android есть функция onTrimMemory(), а в IOS — applicationDidReceiveMemoryWarning(). Существует ли эквивалент flutter?

Комментарии:

1. flutter.dev/docs/разработка / интеграция с платформой/…

2. хм .. я скорее надеялся, что в этом не будет необходимости

Ответ №1:

Класс Flutter WidgetsBindingObserver предоставляет метод для обнаружения нехватки памяти, как показано в этой статье.

Комментарии:

1. в следующий раз вам следует расширить свой ответ, а не указывать на внешнюю ссылку без объяснения причин. Спасибо

Ответ №2:

Виджет должен реализовать WidgetsBindingObserver переопределение и didHaveMemoryPressure , как в следующем примере:

 class _HomePageState extends BaseState<HomePage> with WidgetsBindingObserver {

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void dispose() {
    super.dispose();
    WidgetsBinding.instance.removeObserver(this);
  }

  @override
  void didHaveMemoryPressure() {
    print('didHaveMemoryPressure');
  }

}