From 679e42cbf654378cc1476711d167db91ab391fba Mon Sep 17 00:00:00 2001 From: tongtongstudio Date: Tue, 8 Jul 2025 16:33:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Disposable=E7=94=9F=E5=91=BD?= =?UTF-8?q?=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../selecttospeak/SelectToSpeakService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/google/android/accessibility/selecttospeak/SelectToSpeakService.java b/app/src/main/java/com/google/android/accessibility/selecttospeak/SelectToSpeakService.java index 940555c..54acbdf 100644 --- a/app/src/main/java/com/google/android/accessibility/selecttospeak/SelectToSpeakService.java +++ b/app/src/main/java/com/google/android/accessibility/selecttospeak/SelectToSpeakService.java @@ -35,6 +35,7 @@ import io.reactivex.rxjava3.annotations.NonNull; import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.ObservableEmitter; import io.reactivex.rxjava3.core.ObservableOnSubscribe; +import io.reactivex.rxjava3.disposables.Disposable; import io.reactivex.rxjava3.functions.Consumer; /** @@ -69,14 +70,16 @@ public class SelectToSpeakService extends AccessibilityService { private static final int WAIT_TIME = 1500; - private WechatContact mContact; + private String mName = "";//微信昵称 + private int mCallType = TYPE_VOICE; private Step mCurrentStep = Step.WAITING; - private String mName = "";//微信昵称 private boolean mAutoAccept = false; + private Disposable mDisposable; + public interface AccessibilityEventCallback { void onAccessibilityEventCallback(AccessibilityEvent accessibilityEvent); } @@ -94,7 +97,7 @@ public class SelectToSpeakService extends AccessibilityService { } private void dealingAccessibilityEvent() { - Observable.create(new ObservableOnSubscribe() { + mDisposable = Observable.create(new ObservableOnSubscribe() { @Override public void subscribe(@NonNull ObservableEmitter emitter) throws Throwable { mAccessibilityEventCallback = emitter::onNext; @@ -107,6 +110,7 @@ public class SelectToSpeakService extends AccessibilityService { _onAccessibilityEvent(accessibilityEvent); } }); + Log.e(TAG, "dealingAccessibilityEvent: mDisposable hash = " + mDisposable.hashCode()); } @Override @@ -135,6 +139,10 @@ public class SelectToSpeakService extends AccessibilityService { if (mSettingBroadcastReceiver != null) { unregisterReceiver(mSettingBroadcastReceiver); } + if (mDisposable != null && !mDisposable.isDisposed()) { + mDisposable.dispose(); + mDisposable = null; + } } @Override