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