Android bindService / remote-services - basic Beispiele?

Als Neuling auf Android-Entwicklung, die ich versuche zu tun, die Grundlagen und erstellen einen media-player. Es funktioniert gut in einer Aktivität, aber ich bin nun bewegen Sie den MediaPlayer Zeug zu einem remote-Dienst, so kann er auf nach die Aktivität zu zerstören. Ich habe verschoben, der notwendige code, um den service, Links, Kommentare in der Aktivität, wo werde ich brauchen, um call-service-Methoden, implementiert meinem AIDL und alles baut ohne Fehler (Eclipse).

Allerdings bin ich Total ratlos, wie call-IPC-Methoden. Gibt es einfache und minimale Beispiele, kein Fett - nur das Nötigste?

So, ich bin mit IPC-Methoden, ich brauche nicht zu verwenden, onStart (), an alle - richtig? (Ich beabsichtige zu verwenden LoadFile(Datei-Pfad), und dann haben public void considerDeath() { if (!isPlaying()) { MyService.stopSelf(); } } Methode aufgerufen Aktivität.onDestroy )

/guide/developing/tools/aidl.html hat mehrere Bindemittel, aber wenn ich den mSecondaryConnection Teil, bekomme ich "MyService.Stub nicht gelöst werden können"

Habe ich versucht, http://www.anddev.org/remote_service_tutorial-t8127.html das scheint zu verwirren Dinge, die durch überladen von Methoden.

Ich kann nichts finden, von Mark Murphy entweder auf das Subjekt 🙁

Sie wollen nicht, um einen remote-service für dieses Szenario. Ihre service-Leben können nach den Aktivitäten zerstört werden. Verwenden Sie einfach startService() zu starten, das service, und nicht call stopService (), bis der Benutzer drückt die stop-Taste. Ein remote-service wird nur die überschüssigen Speicher keinen Mehrwert.
BTW, für remote service-Beispiele, check out github.com/commonsguy/cw-advandroid/tree/master/AdvServices
Danke. Würde ein lokaler Dienst wirklich für das folgende Szenario? * Benutzer-Aktivität, und wählt die Datei zu spielen * Während hören auf die Datei, drückt der Benutzer die Schaltfläche "zurück" auf Ihrem Gerät und geht zu prüfen, Ihre E-mail -, schreiben Sie eine SMS und im Internet surfen. Während die Datei abgespielt wird. Android wohl entscheidet, zu zerstören meiner Tätigkeit. * Der Benutzer entscheidet, gehen Sie zurück zu der app, halten Sie das derzeit wiedergegebene Datei und laden Sie eine andere Datei.
Kann die neue Instanz meiner app-Schnittstelle mit dem lokalen Dienst, der bereits ausgeführt wird? Wenn dem so ist, startService()/stopService() definitiv Sinn macht. Obwohl ich noch AIDL zu nennen myService.pause(), und myService.skipToPosition(long milliseconds) - richtig?
"Eine lokale service wirklich für das folgende Szenario?" Sicher-was Sie beschreiben, ist das Verhalten der integrierten Media-Player, zum Beispiel. "Kann die neue Instanz meiner app-Schnittstelle mit dem lokalen Dienst, der bereits ausgeführt wird?" Es wird nicht eine neue Instanz der app. Es wird eine neue Instanz der Aktivität, die in demselben Prozess ausgeführt wie auf Ihrem lokalen service. "Ich brauche noch AIDL zu nennen myService.pause()..." Nein. AIDL ist nur für die remote services. Die lokale Bindung Muster, um die service-Objekt und rufen Methoden auf. Und fühlen Sie sich frei, um eine neue zu starten, SO Frage!

InformationsquelleAutor Chris | 2009-12-02

Schreibe einen Kommentar