2 Stimmen

2 Dienste Kommunikation

Ich habe einen Dienst, der einen anderen Remote-Dienst startet. Wenn der zweite Dienst gestartet haben, bindet es an den ersten Dienst mit IPC, und alles funktioniert gut.

Meine Frage ist, ich möchte, dass der erste Dienst in der Lage sein, mit dem zweiten Dienst als auch zu sprechen (im Moment, nur die andere Weise herum implementiert ist). kann ich irgendwie tun es mit dem gleichen Binder? oder sollte ich den ersten Dienst an den zweiten binden? Vielleicht gibt es eine Möglichkeit, zwei Dienste über dieselbe Verbindung miteinander kommunizieren zu lassen?

Für jede Hilfe wären wir dankbar.

Vlad

4voto

LuxuryMode Punkte 32625

Wenn Sie die erste Service zum Aufruf von Methoden auf der zweiten Service dann müssen Sie eine Binder aus der zweiten Service . Wenn Sie nur kommunizieren wollen, können Sie Broadcasts und richten Sie eine Receiver im ersten Service .

1voto

AlbertoAndreotti Punkte 448

Ich denke, dass eine Zwei-Wege-Kommunikation mit demselben Bindemittel für Dienstleistungen unmöglich ist. Ich habe viel ausprobiert, und das Problem, das ich gefunden habe, ist, dass die IBinder-Schnittstellen, die vom zweiten Dienst abgerufen werden, immer null sind, um es in der Sprache Ihres eigenen Beispiels auszudrücken. Ich meine, der erste Dienst müsste sich an den zweiten binden, um einen gültigen IBinder zu erhalten, um mit dem zweiten Dienst zu kommunizieren. Die Einschränkung besteht darin, dass der zweite Dienst, wenn er den ersten aufruft, keine Schnittstellen an den ersten Dienst weitergeben kann, so dass Rückrufe (vom ersten zum zweiten) stattfinden können. Stattdessen muss eine neue unabhängige IBinder-Verbindung zum zweiten Dienst aufgebaut werden. Ich hoffe, jemand kann uns in dieser Frage helfen.

Alberto.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X