我想用RxJava
來節流AccessibilityEvent
的數量,我從android.accessibilityservice.AccessibilityService
特別是TYPE_VIEW_TEXT_CHANGED event得到。油門方法調用RxJava
每當用戶鍵入EditText
小部件中的任何內容時,它都會被觸發。不過,我嘗試使用debounce
,throttleLast
,throttleFirst
或甚至buffer
。不過,我不確定我應該如何使用它們,如果我還沒有發佈所有的事件。
public class AccessibilityService extends android.accessibilityservice.AccessibilityService {
@Inject
AccessibilityServiceController accessibilityServiceController;
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
Timber.d("AccessibilityEvent was received: " + event.toString());
//Throttle so I only get the last event in XXX milliseconds.
accessibilityServiceController.evaluateEvent(event);
}
@Override
public void onInterrupt() {
Timber.e("Service was interrupted! ");
}
}
我想類似於在此EditText
插件使用debounce
東西 Kaushik Gopal's DebounceSearchEmitterFragment.java
所以我的輸出可以是:
[這]
[這是]
[這是一個測試]
代替:
[T]
[日]
[THI]
[這]
...
提前感謝!
什麼意思:'但是我不確定我應該如何使用它們,如果我還沒有發完所有事件的話。 ? 您是否在創建一個從您的事件obetable問題? 或者只是選擇正確的過濾器運算符? –
我基本上想在創建我的Observable後將對象添加到我的onNext。然後應用正確的過濾器來獲得我想要的輸出。如果我在創建可觀察事件時將事件列表與事件相關聯,那麼我可以使用Observable.from(),但是我想將事件「推送」給可觀察事件。 – tim
那麼使用去抖動有什麼問題?你能不能發佈你的rx相關代碼? –