輸出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'方法的定義問題的編輯.. –