私はAndroidでRxJavaを学んでいます。私はネットワーキングでそれを使用したいので、私はメインスレッド上のものを行うことはできません。Observable.from(Future)の使い方は?
私は次のコードを持っている:
final String RXTAG = "Rx";
Log.d(RXTAG, "Starting Rx experiment");
final FutureTask<String> future = new FutureTask<>(new Callable<String>() {
@Override
public String call() throws InterruptedException {
Log.d(RXTAG, "Callable called on thread " + Thread.currentThread().getName());
Utils.assertNotUIThread();
Thread.sleep(TimeUnit.SECONDS.toMillis(1)); // Simulates network latency
return "hello";
}
});
Observable.from(future, Schedulers.io()).timeout(5, TimeUnit.SECONDS).subscribe(
new Action1<String>() {
@Override
public void call(final String s) {
Log.d(RXTAG, "Next " + s);
}
},
new Action1<Throwable>() {
@Override
public void call(final Throwable throwable) {
Log.w(RXTAG, throwable);
}
},
new Action0() {
@Override
public void call() {
Log.d(RXTAG, "Completed");
}
}
);
をしかし、5 secundsとコーラブルはログを呼び出した後、それはTimeoutException
で終わる示したことはありません。何が問題なのですか?
Vertx logger 'io.vertx.core.logging.Logger;'を使用してください。ログメッセージが表示されます。 –
ロガーの問題ではありません。最初のログが表示され、エラーのあるログも表示されます。そしてObservable.just()を使うと、次のログも表示されます。 – Pitel
申し訳ありませんが、私はvertx –