Domanda

Sto avendo un paio di problemi con un app di allarme sto sviluppando.

La prima cosa che penso è un po 'strana è che quando un allarme va di e si sveglia il telefono in su. Queste cose accadesse.

  

OnCreate
  onResume
  OnPause
  onResume

Perché corrono in questo ordine? Gli ultimi due non dovrebbe essere chiamato? E questo è ciò che è mi provoca grossi guai, perché quando si preme a casa o tornare al telefono, onPause viene eseguito, che voglio chiamare finitura () da. E che le opere di parte come dovrebbe, ma che non funziona quando il telefono si sveglia UPP da bacause sonno della chiamata onPause ...

Tutte le idee?

È stato utile?

Soluzione

vorrei suggerire si guarda a come l'applicazione ufficiale di allarme gestisce gli eventi: https://android.googlesource.com/platform/packages/apps/DeskClock

Altri suggerimenti

Ho anche avuto un problema simile: creo un'attività e di un servizio in background. Quando il servizio riceve alcuni dati dalla rete che porterà-up l'attività. Tutto funziona bene fino a quando l'attività in nella fase onStop e lo schermo diventa nero. Quando ho questa situazione e chiedo l'attività di riavvio, ho:

onRestart onStart onResume onPause onNewIntent onResume

Come potete vedere ho un onResume, onPause e un altro onResume e l'attività è venuto per l'utente.

Sembra che è perché usiamo un singleTop o SingleInstance attività (forse apparire anche sul singleTask). Il problema è che quando si invia l'intento di un già creato singleTop attività, il vostro nuovo metodo attivo intento onNewIntent (). dal API si può vedere che:

  

Un'attività sarà sempre in pausa   prima di ricevere un nuovo intento, in modo da   può contare su onResume () essendo chiamato   dopo questo metodo.

quindi forse è per questo che si ricevono chiamate onResume-onPause-onResume.

Tuttavia, questo è un comportamento strano!

Vuoi davvero chiamare finitura () in onPause ()? onPause () viene chiamato quando l'attività corrente non è in primo piano più. Forse si vuole chiamare finitura () nel metodo onStop (), invece. Per i dettagli, consultare la Activity lifecycle .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top