我有一个应用程序,它有一个链接到布局的类。此布局然后在另一个线程中运行一个进程以避免冻结布局。最终,第二个线程中的代码应该在第一个线程中显示关于布局的对话。代码正在运行。我知道这一点,因为我在最后打印了一篇声明,但对话没有出现。如何显示来自另一个线程的提示对话?
那么一旦线程完成后,我该如何让对话显示出来呢?据我所知,我不能把它塞进另一个线程,所以我很难过。任何帮助,将不胜感激。
我有一个应用程序,它有一个链接到布局的类。此布局然后在另一个线程中运行一个进程以避免冻结布局。最终,第二个线程中的代码应该在第一个线程中显示关于布局的对话。代码正在运行。我知道这一点,因为我在最后打印了一篇声明,但对话没有出现。如何显示来自另一个线程的提示对话?
那么一旦线程完成后,我该如何让对话显示出来呢?据我所知,我不能把它塞进另一个线程,所以我很难过。任何帮助,将不胜感激。
中的onCreate创建处理程序的对象()
mHandler=new Handler();
然后
写下面的代码你的线程里面,你想要显示对话框或更新任何UI视图。
mHandler.post(new Runnable() {
public void run(){
AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);
//Add all dialog prepaation code
}
});
欲了解更多信息,请参阅Background processing in Android
您需要使用线程中的runOnUiThread来访问您的视图并对其进行更新/编辑。
runOnUiThread(new Runnable() {
@Override
public void run() {
btn.setText("#");
//show your dialog here
//do your work here
}
});
,如果您使用的片段只是增加getActivity()
之前runOnUiThread
这完美地工作。非常感激! –