dispose method
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener
and removeListener
will throw after the object is
disposed).
This method should only be called by the object's owner.
Implementation
@mustCallSuper
void dispose() {
_listeners = null;
}