【发布时间】:2018-02-28 07:28:55
【问题描述】:
我有一组自定义对象,我想在每 2 秒后发出一次。这意味着当我向 ReplaySubject 添加一组项目时,它应该一个接一个地访问这些对象 @987654321 @ 方法每 2 秒一次。此对象在用户事件上动态添加到 ReplaySubject。这就是我使用 ReplaySubject 的原因。
我已经做到了,但我想暂停并恢复这个线程 基于某些条件,该条件将根据用户交互而改变。如何做到这一点。
这是我的代码。
private ReplaySubject<CartItemToBeRemove> cartItemToBeRemoveSubject;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cart);
ButterKnife.bind(this);
cartItemToBeRemoveSubject = ReplaySubject.create();
initDeleteQueue();
}
public void initDeleteQueue() {
cartItemToBeRemoveSubject
.delay(2,TimeUnit.SECONDS)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new Observer<CartItemToBeRemove>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(CartItemToBeRemove itemToBeRemove) {
cartData.remove(itemToBeRemove.getItem());
cartListAdapter.notifyItemRemoved(itemToBeRemove.getPosition());
Log.d(TAG, "item" + deletedItem.getName());
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
我正在向 ReplaySubject 添加对象,如下所示
cartItemToBeRemoveSubject.onNext(toBeRemove);
【问题讨论】:
-
我没有明确的答案给你,但你可以看看
zipping 你的主题和Observable.interval。
标签: java android rx-java rx-android