Handler Message Queue wird nicht abgearbeitet.

  • Antworten:0
Karl Dewenter
  • Forum-Beiträge: 6

30.07.2013, 14:32:50 via Website

Hallo zusammen,

ich habe ein eigenartiges Problem mit nem Handler.
Ich habe eine Activity, eine Klasse mit verschiedenen Funktionen und einen Thread.

Die Activity erzeugt eine Instanz auf meine Klasse, die erzeugt den Thread.

Der Thread soll eine Nachricht an die Klasse geben, und diese soll Sie weiter an die Activity geben.

Beim ersten mal funktioniert das ohne Probleme.


1log.d("khd", ""+mHandler.hasMessages(BluetoothConnection.MESSAGE_READ));
2mHandler.obtainMessage(BluetoothConnection.MESSAGE_READ, bytes, -1, test).sendToTarget();
3log.d("khd", ""+mHandler.hasMessages(BluetoothConnection.MESSAGE_READ));
(Code aus dem Thread)

hasMessages gibt beides mal false zurück.
wenn dieser Code zum zweiten mal ausgeführt wird liefert hasMessages erst false, dann true. Und bei meiner Klasse kommt auch keine Nachricht an.

1HandlerConnected = new Handler() {
2 @Override
3 public void handleMessage(Message msg) {
4 super.handleMessage(msg);
5 log.d(tag, "Nachricht vom Thread.");
6 switch(msg.what)
7 {
8 case -1:
9 log.d("khdC", "toSee");
10 break;
11 case MESSAGE_READ:
12 String readBuf = (String)msg.obj;
13 parentHandle.obtainMessage(RECEIVED_MSG,readBuf).sendToTarget();
14 log.d(tag, "Receiveda: "+readBuf);
15 break;
16 }
17 }
18 };
(Code aus der Klasse zur Initialisierung des Handlers)

Kann mir jemand sagen wie das zustande kommt?
Kann ich manuell dafür sorgen, das die Nachricht abgearbeitet werden?

Antworten