diff --git a/services/core/java/com/android/server/speech/RemoteSpeechRecognitionService.java b/services/core/java/com/android/server/speech/RemoteSpeechRecognitionService.java index 9c8ff685d14de..068626588745f 100644 --- a/services/core/java/com/android/server/speech/RemoteSpeechRecognitionService.java +++ b/services/core/java/com/android/server/speech/RemoteSpeechRecognitionService.java @@ -125,10 +125,12 @@ final class RemoteSpeechRecognitionService extends ServiceConnector.Impl service.startListening( recognizerIntent, - mDelegatingListener, + listenerToStart, attributionSource)); } } @@ -162,7 +164,9 @@ final class RemoteSpeechRecognitionService extends ServiceConnector.Impl service.stopListening(mDelegatingListener)); + // Eager local evaluation to avoid reading a different or null value at closure-run-time + final DelegatingListener listenerToStop = this.mDelegatingListener; + run(service -> service.stopListening(listenerToStop)); } }