Я хотел бы использовать 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! ");
}
}
Я хочу что-то похожее на debounce
используемые на этом EditText
виджет Kaushik Gopal's DebounceSearchEmitterFragment.java
Так что мой вывод может быть:
[это]
[это является]
[это тест]
вместо:
[т]
[й]
[Тхи]
[это]
...
Заранее спасибо!
Что означает: «Однако я не уверен, как именно я должен использовать их, если у меня еще нет всех событий, которые я хочу испустить». ? У вас возникли проблемы с созданием наблюдаемого события? Или просто выбрать правильный оператор фильтра? –
Я в основном хочу добавить объекты в мой onNext после того, как создал свой Observable. И затем примените правильный фильтр, чтобы получить желаемый результат. Если бы у меня был список с событиями, когда я сделал наблюдаемый, я мог бы просто использовать Observable.from(), но я хочу «нажимать» события на мои наблюдаемые. – tim
Так в чем проблема с использованием debounce? Можете ли вы опубликовать свой rx-код? –