Tôi đang sử dụng RxAndroid observable
để truy xuất một số đối tượng (Chuỗi trong trường hợp này). dịch vụ của tôi trông như thế này:Sử dụng lập lịch biểu với RxAndroid
public Observable<String> getRandomString() {
return Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
//code to retrieve result
subscriber.onNext("this is a string");
subscriber.onCompleted();
}
});
}
tôi đăng ký ở người dẫn chương trình của tôi và gửi kết quả sang chế độ xem:
public void loadRandomString() {
Observable<String> observable = mService.getRandomString();
observable
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.newThread())
.subscribe(new Subscriber<String>() {
@Override
public void onCompleted() { }
@Override
public void onError(Throwable e) {
mMainView.onError(e.getLocalizedMessage());
}
@Override
public void onNext(String string) {
//do something with string
}
});
}
này hoạt động tốt và tất cả, nhưng tôi muốn hoạt động này là theo định kỳ (mỗi x phút). Tôi có thể sử dụng một số Timer
hoặc ScheduledThreadPoolExecutor
để thực hiện việc này lặp đi lặp lại nhưng tôi muốn xem liệu có một số giải pháp trong lĩnh vực RxAndroid hay không. Tôi đã tìm thấy một số giải pháp cũ từ năm 2013 nhưng rất nhiều mã không được chấp nhận tại thời điểm này. Điều này có thể sử dụng một số loại đệ quy, hoặc tôi có thể đạt được điều này một cách thanh lịch hơn?
Cảm ơn trước!
là 'getRandomString' giống với' getString'? – Blackbelt
Có! Tôi đã thay đổi một số tên vì mục đích đơn giản. –