首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用()从未被调用。

调用()从未被调用。
EN

Stack Overflow用户
提问于 2018-07-27 13:05:59
回答 1查看 41关注 0票数 0

我正在学习如何使用Observable.create()。因此,我创建了下面发布的例子。但当我运行应用程序的时候。单击按钮,调用()方法中的log语句永远不会显示,而.create()中的log语句将立即显示。我预期调用()中的log语句会显示出来,但它没有显示。

请让我知道为什么下面的日志语句Log.i(标签,"++++++++++ STARTED +++++++++");

从来没有展示过。

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
private Button btnStart = null;
private TextView tvText = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.btnStart = (Button) findViewById(R.id.btnStart);
    this.tvText = (TextView) findViewById(R.id.tvText);

     Observable.fromCallable(new Callable<Object>() {
        @Override
        public Object call() throws Exception {
            Log.i(TAG, "++++++++++ STARTED +++++++++");
            Thread.sleep(5000);
            return null;
        }
    })
            .create(e -> {
                Log.i(TAG, "++++++++++ CREATED +++++++++");
                btnStart.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        e.onNext(i[0]++);
                    }
                });
            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<Object>() {
                @Override
                public void onSubscribe(@NonNull Disposable d) {

                }

                @Override
                public void onNext(@NonNull Object o) {
                    Log.i(TAG, "o: " + o.toString());
                }

                @Override
                public void onError(@NonNull Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-24 17:31:39

当您调用create时,您从可调用的创建中创建的可观察到的流实际上被丢弃了,创建了一个您实际订阅的新流。

  • 您可以映像创建一个流。
  • 然后创建另一个流。
  • 但您的订阅只适用于第二个
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51558611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档