dispose method
implement this method,should be end with super.dispose()
Implementation
@override
Future<void> dispose() {
final existing = _disposeFuture;
if (existing != null) return existing;
super.dispose();
return _disposeFuture = _dispose();
}