Frage

Ich bin ein paar Probleme mit einem Alarm app I mit der Entwicklung bin.

Das erste, was ich denke, ein bisschen komisch ist, dass, wenn ein Alarm geht aus und weckt den Hörer auf. Diese Dinge passieren.

  

oncreate
  onResume
  OnPause
  onResume

Warum sind sie in dieser Reihenfolge laufen? Die letzten beiden sollte nicht genannt werden? Und das ist, was macht mir große Schwierigkeiten, denn wenn ich zu Hause drücken oder wieder am Telefon, onPause ausgeführt wird, was ich will (Ziel nennen) aus. Und das Teil funktioniert, wie es sollte, aber das funktioniert nicht, wenn das Telefon weckt upp aus dem Schlaf bacause des onPause Anruf ...

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich würde vorschlagen, Sie schauen, wie die offizielle Alarmanwendung die Ereignisse behandelt: https://android.googlesource.com/platform/packages/apps/DeskClock

Andere Tipps

Ich habe auch ein ähnliches Problem: ich eine Aktivität erstellen und einen Service im Hintergrund. Wenn der Dienst einige Daten aus dem Netz empfangen wird, die Aktivität Bring-up. Alles funktioniert gut, bis die Aktivität in der OnStop Phase und der Bildschirm schwarz. Wenn ich diese Situation haben, und ich fordere die Aktivität Neustart, ich habe:

onRestart am Start auf Wiederaufnahme onPause onNewIntent onResume

Wie Sie sehen, ich habe eine onResume, onPause und andere onResume und die Aktivität kam an den Benutzer.

Es scheint, dass, weil wir eine singleTop oder SingleInstance Aktivität (vielleicht auch auf singleTask erscheinen) verwenden. Das Problem ist, dass, wenn Sie eine Absicht zu einer bereits erstellten singleTop Aktivität, Ihr neuer Vorsatz aktiv die onNewIntent () -Methode senden.

: von der API können Sie sehen, dass
  

Eine Aktivität wird immer angehalten werden   bevor Sie eine neue Absicht empfängt, so dass Sie   zählen auf onResume () aufgerufen können wird   nach dieser Methode.

so vielleicht ist das, warum Sie onResume-onPause-onResume Anrufe empfangen.

Dies ist jedoch ein seltsames Verhalten!

Wollen Sie wirklich finish () in onPause () aufzurufen? onPause () wird aufgerufen, wenn die momentane Aktivität nicht mehr im Vordergrund steht. Vielleicht möchten Sie stattdessen finish () in Ihrem OnStop () -Methode aufrufen. Sehen Sie sich die Activity lifecycle .

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