Hallo zusammen,
bei mir kristallisiert sich allmälich ein neues "Problem" heraus
Ich habe folgende Activity:
// Packages, Imports ...
public class MyActivity extends Activity implements MessageListener{
private TextView myTextView;
private Handler handler;
private Runnable updateUI = new Runnable(){
public void run(){
final TextView myTextView = (TextView)findViewById(R.id.myView);
myTextView.setText("updateUI called"); // ################# BREAKPOINT ###############
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//...
}
public void newMessage(Message message) {
//...
handler.post(updateUI);
}
}
Alles anzeigen
Dabei wird die Methode newMessage von einem anderen Objekt regelmäßig aufgerufen, sodass auch die Runnable updateUI regelmäßig ausgeführt wird, mit der ich den Text einer TextView ändern möchte.
Wenn ich das Ganze mit einem Breakpoint in der entsprechenden Zeile debugge, kommt es zu folgendem, seltsamen Verhalten:
- Ich sehe, dass die Zeile wie gewünscht angesprungen wird.
- Bei der ersten Ausführung vom setText() passiert grundsätzlich nie etwas.
- Resume ich nun das Debuggen mehrmals, wird "irgendwann" - also nachdem der Breakpoint x-mal angesprungen wurde - der Text endlich gesetzt, mal beim 2. Mal, mal aber auch erst beim 10. Mal...
- Ausgeführt wird das Ganze aber nach meinem Verständnis immer wie geplant im Main-Thread:
Thread [<1> main] (Suspended (breakpoint at line 32 in SitzkisteActivity$1))
MyActivity$1.run() line: 32
...
Ist das jetzt eine nicht zu erklärende Merkwürdigkeit, oder sehe ich nur einen offensichtlichen Fehler nicht?
Danke und Grüße,
FargoTof