Birkaç hafta önce şu soruyu sordum: recyclerview periodic ui child updates.İçinde RxJava'yı Kullanma RecyclerView Adaptörü
Ve bugün Rxjava'yı kullanarak bu eğlencelilığı yeniden tanımlamak istiyorum. I şu şekilde aslında oldukça basit başarmak oluyor:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (friend.getGameStatus().equals(GameStatus.INGAME)) {
holderOnline.startRepeatingTask();
} else {
holderOnline.stopRepeatingTask();
}
}
class MyViewHolderOnline extends RecyclerView.ViewHolder {
private Subscription subscribe;
public MyViewHolderOnline(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
public void startRepeatingTask() {
subscribe = Observable.interval(updateInterval, TimeUnit.MILLISECONDS)
.map(aLong -> current.getGameStatusToPrint())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<String>() {
@Override public void onCompleted() { }
@Override public void onError(Throwable e) { }
@Override
public void onNext(String gameStatusToPrint) {
gameStatus.setText(gameStatusToPrint);
}
});
}
void stopRepeatingTask() {
if(subscribe != null && !subscribe.isUnsubscribed())
subscribe.unsubscribe();
}
}
sorun ancak farklıdır. Değiştirildiğinde Duraklatılan ve Yok Olmayan Etkinlikler ile uygulanan bir navigationDrawer var. Bu nedenle, bu bağdaştırıcıyı içermeyen etkinliğe geçtikten sonra, gözlemlenebilir şeyler göndermeye devam ediyor çünkü periyodik bir aralık Gözlemlenebilir. Yani sorum şu, ne yapmalıyım? Etkinlik duraklatıldığında aboneliği iptal etmem gerekiyor, ancak ne zamandan beri ve nasıl geri abone olacağımı bilmiyorum. Herhangi bir yardım ya da fikir? nasıl anda görüntülenen/bağlıdırlar tüm ViewHolder
s başvurular alırım, bir RecyclerView
içeren bir Activity
: Yanlış anlamadıysam
Ya da sadece bir oturum açma yapmalıyım ve etkinlik duraklatılmışsa hiçbir şey yapmamalı mıyım? –