android–RxJava在相同的阻塞UI线程上运行,并且不显示AlertDialog

android–RxJava在相同的阻塞UI线程上运行,并且不显示AlertDialog,第1张

概述我正在尝试使用RxJava在加载某些方法时显示AlertDialog.它不起作用,UI被阻塞2秒,当使用Debugger单步执行时,调试器显示它在UI线程运行.我已经添加了Schedulers.IO,那么我做错了什么?booleaninitialize(){try{Thread.sleep(2000);}catch(InterruptedExce

我正在尝试使用RxJava在加载某些方法时显示AlertDialog.它不起作用,UI被阻塞2秒,当使用DeBUGger单步执行时,调试器显示它在UI线程上运行.我已经添加了Schedulers.IO,那么我做错了什么?

boolean initialize() {    try {        Thread.sleep(2000);    } catch (InterruptedException e) {    }    return true;}public AlertDialog showSomePopup(Context context, String msg) {    return new AlertDialog.Builder(context)            .setTitle("Loading...")            .setMessage(msg)            .setPositivebutton("Ok", null)            .show();}@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    final AlertDialog dialog = showSomePopup(this, "Waiting ..");    Single.just(initialize())            .subscribeOn(Schedulers.io())            .observeOn(AndroIDSchedulers.mainThread())            .subscribe(new Consumer<Boolean>() {        @OverrIDe        public voID accept(@NonNull Boolean aBoolean) throws Exception {            dialog.dismiss();        }    });}

解决方法:

问题是.subscribe()没有被调用,直到initialize()方法没有发出(即你正在使用.just(),直到initialize()没有返回.

总结

以上是内存溢出为你收集整理的android – RxJava在相同的阻塞UI线程上运行,并且不显示AlertDialog全部内容,希望文章能够帮你解决android – RxJava在相同的阻塞UI线程上运行,并且不显示AlertDialog所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1111418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存