How to cancel a StreamSubscription in dispose to avoid a setState-after-dispose crash in Flutter
A stream keeps emitting after the user leaves the screen, its onData calls setState on a disposed State, and Flutter throws. Store the subscription, cancel it in dispose before super.dispose, and the callback can never fire on a dead widget. The full pattern for Flutter 3.44.