hey,
also erst mal Sorry wegen dem Titel wusste nicht wie ich mein Problem so kurz und knapp beschreiben soll.
Also folgendes: Ich habe einen Button wenn ich auf diesen drücke wird eine URL "zusammengebaut" (je nach Nutzer eingaben), dort ein XML runtergeladen und geparsed (SAXParser). Währenddessen möchte ich gerne ein ProgressDialog anzeigen. Soweit habe ich auch alles hinbekommen allerdings war es ja irgendwie klar dass der Button nun total träge reagiert also erst mal "gedrückt bleibt" und dann wenn alles abgearbeitet ist kommt er wieder "raus" und der ProgressDialog geht auf einen schlag auf 100%. Also wollte ich das parsen in einem Thread laufen lassen was ich auch hinbekomme. Mein code sieht z.Z. so aus:
cdoe code code......
ProgressDialog dialog = null;
public void myClickHandler(View view)
{
dialog = new ProgressDialog(this);
dialog.setCancelable(true);
dialog.setMessage("Loading...");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(0);
dialog.setMax(100);
dialog.show();
Thread background = new Thread(new Runnable()
{
public void run()
{
url = buildURL();
dialog.setProgress(50);
getAndParseData(url);
dialog.setProgress(100);
} });
background.start();
//background.join();
//mehr code
Intent i = new Intent(MyActivity.this, NextActivity.class);
startActivity(i);
}
..... code code code
Alles anzeigen
so nun das Problem ist wenn ich das join weg lasse wird der Code der noch kommt zu früh abgearbeitet mit dem join is allerdings wie oben schon beschrieben der Button sehr träge und der ProgressDialog wird auf einen schlag mit 100% gezeichnet. Ich habe mir schon überlegt den Code der noch ausgeführt werden soll in den Thread mit rein zu packen allerdings führt dass dann zu einem force close. Ich probiere jetzt schon ein par stunden rum wäre echt schön wenn ihr mir helfen könnten
MFG
WuSu