2
我將使用Java編寫的Android應用程序移植到Groovy。我正在嘗試使用Groovy閉包,但它不起作用。編譯並運行時沒有錯誤,但沒有任何反應。(RxJava)移植Groovy方法不起作用
這是不起作用的版本。
Observable.create({
Subscriber<Bin> subscriber ->
new Thread(new Runnable() {
@Override
void run() {
List<List<String>> lists = binData.getData()
for (List<String> strings : lists) {
try {
Bin bin = ... // shorten for brevity
subscriber.onNext(bin)
} catch (Exception ex) {}
}
subscriber.onCompleted()
}
}).start()
})
此版本正常工作。這是有效的Groovy,但有點冗長。
Observable.create(new Observable.OnSubscribe<Bin>() {
@Override
public void call(final Subscriber<? super Bin> subscriber) {
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
List<List<String>> lists = binData.getData();
for (List<String> strings : lists) {
try {
Bin bin = ... // shorten for brevity
subscriber.onNext(bin)
} catch (Exception ex) {}
}
subscriber.onCompleted()
}
})
t.start()
}
})
我想這是關閉或類型的事情,但我無法弄清楚。任何想法?謝謝!
我遵循的例子是https://github.com/ReactiveX/RxJava/wiki/How-To-Use-RxJava#asynchronous-observable-example。
你嘗試強迫通過'作爲Observable.OnSubscribe'關閉? –
bdkosher
2014-09-29 14:04:59
@BDKosher還沒有。我會嘗試並讓你知道。 – pt2121 2014-09-29 15:16:19
@BDKosher你是對的。謝謝!你想回答嗎?我會接受它。 – pt2121 2014-09-29 17:30:23