为什么不运行这个简单的RxJava语句?

时间:2014-12-19 06:47:43

标签: eclipse rx-java gradle-plugin

我正在从http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/

学习RxJava

复制并粘贴他的hello world示例会出现编译错误,指出该方法不会覆盖超类中的一个。所以我使用了相同的例子,但Eclipse生成了“call”方法:

Observable<String> myObservable = Observable.create(
            new Observable.OnSubscribe<String>() {

                public void call(Subscriber<? super String> arg0) {
                    // TODO Auto-generated method stub
                    System.out.println("Hi");

                    arg0.onNext("Hello, world!");
                    arg0.onCompleted();
                }
            }
        );

运行上面的代码不会打印任何内容,验证调用方法永远不会被调用。

我的build.gradle文件:

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version':     
version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
    compile 'io.reactivex:rxjava:1.0.0'
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

如果有人可以链接一个关于rxjava或rxandroid的优秀,直观的教程,也会受到赞赏。

1 个答案:

答案 0 :(得分:2)

它没有输出任何内容,因为你没有调用subscribe。再次阅读帖子,您将找到以下代码:

myObservable.subscribe(mySubscriber);
// Outputs "Hello, world!"