优化Disposable生命周期
This commit is contained in:
@@ -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<AccessibilityEvent>() {
|
||||
mDisposable = Observable.create(new ObservableOnSubscribe<AccessibilityEvent>() {
|
||||
@Override
|
||||
public void subscribe(@NonNull ObservableEmitter<AccessibilityEvent> 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
|
||||
|
||||
Reference in New Issue
Block a user