Есть ли способ активировать обратный вызов, когда объект Dart получает мусор (или собирается)?
Я создаю плагин с несколькими друзьями, который оборачивает SDK MongoDB Stitch.Для некоторых объектов, таких как «Клиент», «База данных», «Коллекция» и т. Д., Нам нужно поддерживать экземпляры в активном состоянии и извлекать их с помощью различных вызовов методов.
Для этого мы сохраняем экземпляры внутри объектов Map, когда они создаются на нативной стороне плагина, и возвращаем ключ карты на сторону Dart.
Таким образом, мы можем использоватьMethodChannel api для получения правильного объекта и вызова запрошенного метода.
Проблема заключается в том, что при этом, даже если объект собирается в Dart, мы сохраняем связанный нативный объект на карте до завершения программы.
Я мог бы предоставить метод dispose для объекта Dart, но при этом мне нужно было бы, чтобы пользователи сами управляли памятью.Почти уверен, что это кончится кровью.