我想用一個線程在後臺花費幾秒鐘做一些工作。 我試圖顯示一個進度對話框,但它根本沒有顯示。如何使用異步任務
我認爲使用異步任務會更好,但每當我嘗試時都無法使其工作,主要是因爲我無法訪問需要在異步任務中修改的變量。
這裏是我的線程在單擊按鈕時被調用:
Thread thread = new Thread()
{
@Override
public void run() {
try {
for (String s : dLinks) {
String pathToFile = s.substring(1));
dURLs.add(dFs.fetchLink(pathToFile, false).toString());
}
} catch (DbxException e) {
dURL = null;
e.printStackTrace();
}
}
};
thread.start();
try {
thread.join(); // I added this as the next part of my code was executing before the thread was finished
} catch (InterruptedException e) {
e.printStackTrace();
}
我能移動這一個異步任務,更新進度條,或者至少表現出旋塗器傳回的陣列dURLs到主線程?
從另一個線程訪問UI元素,使用'runOnUiThread()'或'Handler' –
也許這可以幫助.... http://www.vogella.com /tutorials/AndroidBackgroundProcessing/article.html – SMR
我不確定我是否能夠使用異步任務,是否有使用上述代碼並顯示進度條,只是爲了讓用戶知道發生了什麼。 .. – user3437721