注意:我知道有很多与此相关的问题,但我仍然没有说服,所以问。
当我尝试显示对话框时,我无法在线程中创建处理程序而没有调用looper.prepare。
这是我的代码......
//基于某些条件从另一个方法调用此方法,该条件在单击按钮时调用
private void download() {
thread = new Thread() {
public void run() {
/**** Downloads each tour's Tour.plist file ****/
try {
// do many heavy operations here, like download,
//calling web webvice and starting another activity
This comes at the end
Intent toAudio = new Intent(TourDescription.this,Audio.class);
startActivity(toAudio);
} catch (Exception e) {
}
}
};
thread.start();
}
现在,在此行为被召唤之前,我正试图展示一个对话框。我试着在调用Intent之前放置它。
任何人都可以告诉我怎么做,因为我不明白如何解决这个问题
答案 0 :(得分:5)
您无法显示子线程的对话框。 只能在UI线程/主线程中显示对话框。
从子线程
中尝试这个runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO show dialog....
}
});