Hallo,
ich habe folgendes Problem, das ich wie folgt verkürzen kann:
Status.setText("Start");
FunktionXYZ();
Status.setText("Fertig");
Wenn ich meine Anwendung starte, soll das Wort "Start" ausgegeben werden. Die Funktion dauert ein paar Sekunden.
Zum Schluß soll dann "Fertig" angezeigt werden.
Das Wort "Start" erscheint aber nie.
In C# oder VB würde ich das wie folgt lösen:
Status.setText("Start");
Application.DoEvents(); FunktionXYZ();
Status.setText("Fertig");
oder in Delphi
Status.setText("Start");
Application.ProcessMessages;
FunktionXYZ();
Status.setText("Fertig");
Diese Befehle gibt es wohl in Java nicht. Nach einiger Googlelei habe ich den Hinweis gefunden, dass nur
ein zweiter Thread das Glück bringen kann. Also habe ich folgendes probiert:
Ich habe einen 2. Thread erzeugt:
class SimpleThread extends Thread
{
public static TextView Status;
public SimpleThread(String str, TextView Anzeige)
{
super(str);
Status = Anzeige;
}
synchronized public void run()
{
Status.setText(getName());
}
}
In meinen eigentlichen Anwendung rufe ich das wie folgt auf:
Status = (TextView) findViewById(R.id.txtStatus);
SimpleThread Show = new SimpleThread("Start", Status);
Show.start();
Show.run();
FunktionXYZ();
Show = new SimpleThread("Ende", Status);
Show.start();
Show.run();
Gebracht hat das aber nichts. Das Wort "Ende" erscheint, "Start" erscheint immer noch nicht.
Merkwüdig, bin ich der erste Mensch der soetwas versucht?
Freue mich auf Antworten und vor allem eine Lösung
ich habe folgendes Problem, das ich wie folgt verkürzen kann:
Status.setText("Start");
FunktionXYZ();
Status.setText("Fertig");
Wenn ich meine Anwendung starte, soll das Wort "Start" ausgegeben werden. Die Funktion dauert ein paar Sekunden.
Zum Schluß soll dann "Fertig" angezeigt werden.
Das Wort "Start" erscheint aber nie.
In C# oder VB würde ich das wie folgt lösen:
Status.setText("Start");
Application.DoEvents(); FunktionXYZ();
Status.setText("Fertig");
oder in Delphi
Status.setText("Start");
Application.ProcessMessages;
FunktionXYZ();
Status.setText("Fertig");
Diese Befehle gibt es wohl in Java nicht. Nach einiger Googlelei habe ich den Hinweis gefunden, dass nur
ein zweiter Thread das Glück bringen kann. Also habe ich folgendes probiert:
Ich habe einen 2. Thread erzeugt:
class SimpleThread extends Thread
{
public static TextView Status;
public SimpleThread(String str, TextView Anzeige)
{
super(str);
Status = Anzeige;
}
synchronized public void run()
{
Status.setText(getName());
}
}
In meinen eigentlichen Anwendung rufe ich das wie folgt auf:
Status = (TextView) findViewById(R.id.txtStatus);
SimpleThread Show = new SimpleThread("Start", Status);
Show.start();
Show.run();
FunktionXYZ();
Show = new SimpleThread("Ende", Status);
Show.start();
Show.run();
Gebracht hat das aber nichts. Das Wort "Ende" erscheint, "Start" erscheint immer noch nicht.
Merkwüdig, bin ich der erste Mensch der soetwas versucht?
Freue mich auf Antworten und vor allem eine Lösung
Comment