Dieses Thema wurde bisher oft diskutiert, aber immer noch nicht gelungen, es funktioniert.Nachricht, die an den UI-Thread gesendet wird nie ankommt
Mein MainActivity
hat eine Eigenschaft Handler mHandlerUi;
genannt, die in seinem Konstruktor initialisiert
mHandlerUi = new Handler() {
@Override
public void handleMessage(Message msg){
onMessageArrive(msg);
}
};
später im Code, in einer anderen Klasse, während Bauzeit initialisieren ich eine andere Handler Eigenschaft
mHandlerToUi = new Handler(Looper.getMainLooper());
Während der Laufzeit des Threads wird das folgende Code-Snippet X-mal ausgeführt.
Message msg = mHandlerToUi.obtainMessage();
msg.what = ConstMessages.MSG_NEW_GPS_POINT;
msg.setData(bundleContet);
mHandlerToUi.sendMessage(msg);
Leider ist die Nachricht kommt nie an die MainActivity Loopers, beide Threads die gleiche Benutzeroberfläche des Greifers verwendet,
Was bin ich hier fehlt vorbei?
genau das, was ich versuche zu tun, aber wie komme ich Verweis des Handler teilen muß unter den Klassen, und nicht sein Looper? Gibt es eine Möglichkeit, denselben Effekt zu erzielen, wenn ich DuplicateHandle (c language) verwenden würde –
Kevinrob hat Ihre Frage beantwortet, was hält Sie davon ab, die Handler-Referenz zu übergeben? – qichuan