gpt4 book ai didi

android - 为什么从后台线程关闭 ProgressDialog 时没有抛出异常?

转载 作者:太空宇宙 更新时间:2023-11-03 12:23:34 25 4
gpt4 key购买 nike

我知道当我尝试在后台线程上显示 ProgressDialog 时抛出异常 Can't create handler inside thread that has not called Looper.prepare(),

因为我们试图从后台线程修改 UI。但是当我们在后台线程中关闭该对话框时,不会抛出异常。为什么当我们关闭后台线程中的对话框时不会抛出异常,因为关闭我们也是从后台线程修改 UI。

谢谢

最佳答案

这是 Dialog 的 dismiss() 方法的代码,显示了为什么没有抛出异常并且 dismiss 有效:

/**
* Dismiss this dialog, removing it from the screen. This method can be
* invoked safely from any thread. Note that you should not override this
* method to do cleanup when the dialog is dismissed, instead implement
* that in {@link #onStop}.
*/
public void dismiss() {
if (Thread.currentThread() != mUiThread) {
mHandler.post(mDismissAction);
} else {
mDismissAction.run();
}
}

关于android - 为什么从后台线程关闭 ProgressDialog 时没有抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com