Android remote-service, der Rückrufe

(Ich habe eine remote service mit einer AIDL-Schnittstelle, die verwendet wird, um mehrere client-apps. Ich möchte hinzufügen, dass eine asynchrone Methode, um die Schnittstelle für Aufrufe, die einige Zeit in Anspruch nehmen, aber ich brauche die Lösung zu sein sichere, was bedeutet, dass nur meine Anwendungen kann die Kommunikation mit dem service. Die client-Anwendungen sind signiert mit der gleichen Signatur wie die service-app. Derzeit sind die apps nur binden, um die service-und call-a single interface-Methode zum ausführen verschiedener Operationen.

Eine option ist die übertragung Absicht aus dem Dienst, wenn der Vorgang abgeschlossen ist, und mit einem BroadcastReceiver in der client-Anwendung, aber (Frage #1) kann dies auf eine Weise erfolgen, die sicherstellt, dass nur meine apps erhalten können, die Absicht? setPackage() scheint dies zu tun, aber ich brauche die Unterstützung von Gingerbread-Geräten, das scheint die Regel, dass der Ansatz nach der Antwort hier: setPackage für Vorsatz in Lebkuchen

So scheint es, brauche ich einen zweiten .aidl-interface mit den callback-Schnittstelle für den service zu verwenden, umgesetzt durch den AUFTRAGGEBER. Ich habe gesehen, Beispiele verwenden, die Zuhörer hier, aber ich bin nicht sicher was der Unterschied ist gegenüber dem Kunden nur auf der Durchreise in die zweite interface-Objekt als argument (wie in der IScript /IScriptResult Beispiel aus dieser Antwort: Service-Aufruf mit dem Rücken zur Tätigkeit in android)

Frage #2, was ist der Vorteil der Verwendung eines listener-hier im Vergleich eine callback-Methode?

  • Zuhörer sind callback-Methoden.
InformationsquelleAutor Android QS | 2013-01-29
Schreibe einen Kommentar