Я создал новую тему для файлового браузера. Поток читает содержимое каталога. Я хочу обновить поток пользовательского интерфейса, чтобы нарисовать графическое представление файлов и папок. Я знаю, что не могу обновить пользовательский интерфейс из нового потока, поэтому я хочу сделать следующее:
пока поток сканирования файлов просматривает каталоги, файлы и папки передают строку пути файла обратно в поток пользовательского интерфейса Затем обработчик в потоке пользовательского интерфейса рисует графическое представление файла, переданного обратно.
public class New_Project extends Activity implements Runnable {
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.d("New Thread","Proccess Complete.");
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
};
public void fileScanner(){
//if (!XMLEFunctions.canReadExternal(this)) return;
pd = ProgressDialog.show(this, "Reading Directory.",
"Please Wait...", true, false);
Log.d("New Thread","Called");
Thread thread = new Thread(this);
thread.start();
}
public void run() {
Log.d("New Thread","Reading Files");
getFiles();
handler.sendEmptyMessage(0);
}
public void getFiles() {
for (int i=0;i<=allFiles.length-1;i++){
//I WANT TO PASS THE FILE PATH BACK TU A HANDLER IN THE UI
//SO IT CAN BE DRAWN.
**passFilePathBackToBeDrawn(allFiles[i].toString());**
}
}
}