我有一个应用程序,其中有一个类与布局相关联。然后,此布局在另一个线程中运行一个进程,以避免冻结布局。最终,第二个线程中的代码应该在第一个线程中显示布局上的对话框。代码正在运行。我知道这是因为我在最后加上了一份印刷声明,但对话并没有显示出来。
那么一旦线程完成,我该如何让对话显示出来?据我所知,我不能把它放到另一个线程中,所以我很难过。任何帮助将不胜感激。
答案 0 :(得分:1)
在onCreate()
中创建Handler的对象 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
答案 1 :(得分:0)
您需要使用线程中的runOnUiThread来访问您的视图并更新/编辑它。
runOnUiThread(new Runnable() {
@Override
public void run() {
btn.setText("#");
//show your dialog here
//do your work here
}
});
如果您使用的是片段,请在getActivity()
runOnUiThread