android - Best way to repeat an observable every minute rxjava -
i have following method:
public class parentalcontrolinteractor { public single<boolean> ispinset() { return bamsdk.getpinmanager().ispinset(); } } i want call function run once, repeat every minute until infinity seems clumsy:
parentalcontrolinteractor.ispinset() .subscribeon(schedulers.io()) .repeat(10000) .timeout(1600,timeunit.milliseconds) .doonerror(throwable -> { timber.e(throwable,"error getting if pin set"); throwable.printstacktrace(); }) .subscribe(ispinset -> { this.ispinset = ispinset; timber.d("pin set = " + ispinset.tostring()); }); isn't there better way it? i'm using rxjava2. also, method above calls 10000 times. want call forever, using handler.postdelayed().
try this:
parentalcontrolinteractor.ispinset() .subscribeon(schedulers.io()) .repeatwhen(new func1<observable<? extends void>, observable<?>>() { @override public observable<?> call(observable<? extends void> observable) { return observable.delay(60, timeunit.seconds); } }) .doonerror(throwable -> { timber.e(throwable,"error getting if pin set"); throwable.printstacktrace(); }) .subscribe(ispinset -> { this.ispinset = ispinset; timber.d("pin set = " + ispinset.tostring()); });
Comments
Post a Comment