Автоматически освобождать ресурсы собственной платформы, когда они не используются в Dart.

Есть ли способ активировать обратный вызов, когда объект Dart получает мусор (или собирается)?

Я создаю плагин с некоторыми друзьями, который оборачивает MongoDB Stitch SDK. Для некоторых объектов, таких как "Клиент", "База данных", "Коллекция" и т. Д., Нам нужно поддерживать экземпляры в активном состоянии и извлекать их с помощью различных вызовов методов.

Для этого мы сохраняем экземпляры внутри объектов Map, когда они создаются в исходной части плагина, и возвращаем ключ карты в сторону Dart.

Тем самым мы можем использовать API-интерфейс MethodChannel для получения правильного объекта и вызова запрошенного метода.

Проблема заключается в том, что при этом, даже если объект будет собран в Dart, мы сохраним связанный объект на карте до завершения программы.

Я мог бы предоставить метод dispose для объекта Dart, но при этом мне нужно, чтобы пользователи сами управляли памятью. Почти уверен, что это кончится кровью.

0 ответов

Другие вопросы по тегам