Frage

Meine Anwendung verwendet einen Remote-Service, um die Wiedergabe-Audio. Ich tue dies, so dass keine Aktivität, um die Wiedergabe des Audio besitzt - der Benutzer kann einige auslösen Audio von einer Aktivität gespielt werden, und der Ton wird weiterhin spielen, da sie die App navigieren. Ich aber will das sagen, Dienst zu unterbrechen oder aufhören zu spielen Audio, wenn der Benutzer „entlädt“ die App entweder durch Rückzieher, Verriegeln der Anzeige oder Heim schlagen. Wann wurde die App eine einzige Aktivität, ich tat dies in onPause. Also, ich denke, ich bin im Wesentlichen Suche nach „onPause“ bei der Anwendung / Task-Ebene. Ist so etwas existieren? Wenn nicht, was ist die „best practice“ Art und Weise der notifizierten bekommen dass die Aufgabe durch den Benutzer auf Eis gelegt wurde, entweder die Sicherung all Ausweg oder Schlagen zu Hause?

War es hilfreich?

Lösung

Hmmmm ... leider, wie ich vermute, es gibt keine einfache Antwort gibt. Ich denke, das ist, warum die integrierte Media-Player und Pandora verwendet, um eine Benachrichtigung, auf einfache Weise der Benutzer zu lassen, um die App zurück, um es zum Schweigen bringen zu machen.

Wenn Ihre Aktivität Fluss ziemlich linear ist, dann der Anwendung Rückzieher ist die gleiche wie die Anfangsaktivität Rückzieher.

Ein Trick, den ich in einem Szenario verwendet wurde, war jede Aktivität zu haben, den Dienst in onPause() und onResume() informieren. Der Service würde überwacht diese, und wenn es eine onPause() ohne anschließenden onResume() in einem gewissen Zeit bekommt, war es der Benutzer angenommen war verschwunden (HOME, eingehenden Anruf, eingehende SMS-Nachricht über eine Benachrichtigung zu einem gewissen App reagiert, usw. ).

Sie können auch sehen für ACTION_SCREEN_OFF Broadcast Intents, dieses Szenario zu behandeln.

Es tut mir leid, dass ich nicht eine bessere Königsweg Antwort haben -. Vielleicht jemand anderes wird eine bessere Idee

Andere Tipps

Ich habe in einer ähnlichen Situation gewesen, und im Wesentlichen tat ich, was Mark vorgeschlagen; Anstatt eine separate Meldung, ich hatte einfach das Service, die Anrufe zu meinem register count () und unregisterCallback () APIs, das jede Aktivität ohnehin tun muß.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top