Wie man Methoden eines Dienstes von der Tätigkeit nennt?
Möchte ich einfach nur rufen Methoden eines lokalen service von meiner Tätigkeit. Wie kann ich das tun ?
InformationsquelleAutor der Frage Shiz | 2011-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg, dies zu tun ist durch die Definition einer Schnittstelle mit Android ist AIDL und das
Binder
subsystem durchführen IPC. Es gibt eine große Reihe von Anweisungen in den link, den ich gepostet. Ich würde dort ansetzen und dann hier posten, wenn Sie Fragen haben. Trotz des seins ein ziemlich Komplexes Thema (IPC) Android und derBinder
tun einen wirklich guten job machen es ziemlich einfach tot (zumindest für den Einstieg, ich bin sicher, Sie könnten machen es kompliziert, wenn man wollte 😉 )Bearbeiten Wie schon in den Kommentaren, ist dies dann nicht erforderlich, wenn die
Service
und der client im selben Prozess ausgeführt. Sofern Sie nichts anderes angeben, ist dies der Standard. Aber es funktioniert immer noch unabhängig, es fügt nur ein wenig mehr Komplexität.InformationsquelleAutor der Antwort Chris Thompson
Hier ist ein Beispiel, das helfen könnte,
Server.java:
Client.java
InformationsquelleAutor der Antwort Prateek Yadav
Gibt es Beispiel-code für dieses Recht in der Service-Dokumentation unter "Lokaler Service-Beispiel":
http://developer.android.com/reference/android/app/Service.html#LocalServiceSample
Auch für jene Menschen, die darauf hindeutet, aidl-wenn service-und client-Teil von Ihrem eigenen .apk und die in demselben Prozess ausgeführt wird (das Standardverhalten), gibt es keine Notwendigkeit für aidl; es ist nur zusätzliche Komplexität, die nicht geben Ihnen etwas.
InformationsquelleAutor der Antwort hackbod
Ich weiß nicht, wo dein problem liegt, poste bitte etwas code.
Mit einem Binder, der Aktivität kann der Zugriff auf das service-Objekt. Siehe die Beispiele in der API für das erstellen einer Verbindung zwischen activity und service.
Dass das service-Objekt in Ihre Aktivitäten, rufen Sie einfach an:
mService.yourMethod();
Wir könnten Ihnen helfen, viel besser, wenn Sie genau beschreiben Sie Ihr problem und wie gesagt, nach ein paar snippets.
InformationsquelleAutor der Antwort Jonathan Roth