Android: Wie kann ich fangen home-Taste drücken
Ich entwickle eine Anwendung für die Musik. Ich habe eine Activity
wo ich eine Liste mit den tracks. Ich kann wählen Sie einen track und dann Wende ich mich anderen Aktivitäten, um den ausgewählten Titel wiederzugeben. Ich habe auch ein Service
Klasse und wenn ich die home-Taste drücken, möchte ich es, um den Dienst zu starten (Abspielen von Musik im hintergrund) und bewegen auf dem home-Bildschirm.
Außerdem habe ich die Methode OnBackPressed()
in, um sich zu bewegen auf die Vorherige Activity
.
Wie kann ich abfangen, die home-Taste drücken? Danke, für deine Antworten.
- Vielleicht zu diesem Thema helfen u stackoverflow.com/questions/5376501/..., aber u kann überlastung onPause() zu erreichen, was Sie wollen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt fangen Sie die home-Taste drücken, möchten Sie vielleicht, um Fleisch aus den android lifecycle ein wenig mehr und nutzen
onPause()
statt. Wenn Sie überschreiben der AktivitätonPause()
Methode, um den Dienst zu starten, wenn der Benutzer verlässt die Tätigkeit vorübergehend, d.h. es geht "nach Hause", das sollte Sie bekommen, was Sie benötigen, ohne dass Sie alle zu fangen die Taste drückt.Wenn Sie möchten, den Dienst zu starten, wenn der Benutzer verlässt die Aktivität und, sagen wir, geht zu einer anderen Anwendung, die den Lebenszyklus ist dein Freund. Möchten Sie vielleicht zu prüfen, was passiert, wenn der Benutzer bekommt eine E-Mail Benachrichtigung ein und hinterlässt Ihre Anwendung, die Art und Weise. Möchten Sie den Dienst starten, als gut? Der Benutzer hat nicht auf die home-Taste, so dass Sie Ihren Dienst nicht starten, aber Sie haben lassen Sie Ihre Anwendung. Wollen Sie den Dienst zu starten in diesem Szenario?
Klingt es wie Sie wollen, den Dienst zu starten, wenn der Benutzer Blättern, die Aktivität, so schauen Sie bitte in übergeordnete
onPause()
wenn das der Fall ist.Mehr auf die android-Lebenszyklus hier:
http://developer.android.com/reference/android/app/Activity.html
Alles was Sie brauchen ist, diese Methode hinzuzufügen:
Bearbeiten: Geben Sie diesem einen Versuch als workaround für nicht in der Lage abzufangen, die home-Taste, legen Sie eine
back_flag
Wieder, wenn es nicht die Registrierung der Heimat, dies ist die einzige Arbeit, um die ich denken kann im moment.
Android ist entworfen, um NICHT zulassen, dass Ihre Anwendung zu unterbrechen, die Taste home wie können Sie die zurück-Taste. Das ist "working as designed" - Funktion. Den zurück button kann erfasst werden, onKeyDown, aber zu Hause nicht.
Die einzige Sache, die Sie tun können, ist achten Sie auf die HOME Vorsatz. In Ihrem manifest einen block hinzufügen, wie dies:
Nun hier die Sache ist die... wenn der Benutzer sich zuvor auf den home-button nach der Installation Ihre Anwendung, Android wird ein pop-up - "was möchten Sie tun" und Sie können die Standardeinstellung, um entweder Ihre Standard-Startseite oder Ihre Anwendung. Nachdem Sie wählen Sie eine Voreinstellung, die Sie nie sehen, diese Auswahl wieder.
Wie Sie sehen können, ist es nicht sinnvoll, für irgendetwas, außer einem home-Bildschirm Ersatz app.
Stellen Sie sicher, testen Sie jede andere Problemumgehung, wie die OnPause-Vorschlag vollständig. Wird Ihre app ausführen, wie erwartet, wenn die Bildschirmsperre zum Beispiel?