dispose method
Releases any global resources held by the backend.
Overrides MUST also call detachInstance (or super) so the shared instance slot never hands a disposed backend to the next facade.
Implementation
@override
Future<void> dispose() async {
await _adapterController.close();
}