虽然rxjava很好用, 如果产生过多的订阅就会造成内存泄漏问题, 如何解决呢?
@Override
protected void onDestroy() {
super.onDestroy();
//主动解除订阅关系
if (mSubscription != null && !mSubscription.isUnsubscribed()) {
mSubscription.unsubscribe();
}
}
mSubcsription是 被观察者订阅观察者的返回值;
Subscription subscription = Observable.from(list)
.filter(new Func1<User, Boolean>() {
@Override
public Boolean call(User user) {
return !user.id.equals("2");
}
})
// .elementAt(3)//只打印出index为3的元素
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<User>() {
@Override
public void call(User user) {
System.out.println("MainActivity.call=" + user.id);
}
});