我想用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相关代码? –