背景
在逻辑处理的时候挂了一线程监听网络回调的数据,这样就不会卡在UI没有任何表现导致用户以为死机了。这样的处理方式也是常规的网络处理方式。
问题
结我在成功回调中就简单构造一个dialog来弹出信息展示,结果debug发现明明走到了create
和show
方法中,但是就是没有出现在UI中!
这个就很奇怪了。文章来源:https://www.toymoban.com/news/detail-735490.html
解决
// 文本筛选之后
private SelectUtil selectUtil = new SelectUtil(new SelectUtil.SelectListener() {
@Override
public void onSuccess(SelectInfo selectInfo) {
runOnUiThread(new Runnable() {
@Override
public void run() {
// tip dialog
normalDialog = new AlertDialog.Builder(CameraActivity.this);
normalDialog.setTitle("信息");
normalDialog.setMessage("延迟单位(ms)"+selectInfo.delay);
normalDialog.setPositiveButton("确定", (dialog, which) -> {
//消失
dialog.dismiss();
}
// 创建并显示
).create().show();
}
});
ZegoAppLog.d(TAG, "SelectUtil onSuccess "+ selectInfo);
ToastUtils.showLong("SelectUtil onSuccess "+ selectInfo.toString());
dialog.dismiss();
}
@Override
public void onFailure(String errorInfo) {
ZegoAppLog.d(TAG, "SelectUtil onFailure "+ errorInfo);
ToastUtils.showLong("SelectUtil onFailure "+ errorInfo);
dialog.dismiss();
}
});
在runOnUIThread
才能实现这种方式。文章来源地址https://www.toymoban.com/news/detail-735490.html
到了这里,关于【Android】Dialog不显示的问题,涉及线程处理问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!