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