输出I有2个线程:没有消息是从所述第二线程
//Second Thread
private class Init implements Runnable {
public void run() {
setTextMessage("Initialization");
//Perform actions
}
}
//First Thread
private class Download implements Runnable {
public void run() {
setTextMessage("Downloading");
//Perform actions
Thread thread = new Thread(new Init());
thread.start();
}
}
public void setTextMessage(final String textMessage) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (dialog != null) {
setDialogMessage(textMessage);
}
}
});
}
//Add1
protected void setDialogMessage(Dialog dst, String text) {
if (dst != null) {
TextView progressTextDetails = (TextView) dst.findViewById(R.id.progressTextDetails);
progressTextDetails.setText(text);
}
}
在理想情况下,在开始第二线程之后,我在屏幕上看到的“初始化”,而不是“下载”,并在第二线程中定义的操作执行。但有时屏幕上的信息不会改变。虽然在第二个线程中定义的动作已启动。在第二个线程中调用setTextMessage方法,但UI线程中的文本不会更改。为什么?
您是否尝试首先显示初始化,然后下载?或者是周围的其他方式? – Abbas
首先在主线程(活动)我开始下载 –
这将是很好,如果你粘贴你的整个代码或'setDialogMessage'方法的定义问题的编辑.. –