Dato che ho difficoltà con la gestione delle eventuali pressioni dei pulsanti che potrebbero mandare a pallino le mie applicazioni, credo di dover fare tutta una sessione sul modo di far entrare nel codice la programmazione degli eventi di questi pulsanti.
Costruisco un'applicazione inutile con un MainActivity e un Service bindato ad essa, ma con tutti i "marker" sugli eventi onCreate, onStart, onResume, onPause, onStop, onDestroy, per studiare le modalità di cambiamento degli "status" con la pressione dei diversi tasti del cellulare.
Questo è ciò che avviene all'inizio:
07-28 14:47:43.211: V/MAIN(3942): ONCREATE 07-28 14:47:43.211: V/MAIN(3942): ONSTART 07-28 14:47:43.221: V/MAIN(3942): ONRESUME 07-28 14:47:43.241: D/SERVIZIO(3942): ONCREATEMain segue la progressione di creazione, start, resume. Service viene creato in quanto bindato dall'evento onStart di Main.
Ora schiaccio il tasto INDIETRO.
07-28 14:48:03.110: V/MAIN(3942): ONPAUSE 07-28 14:48:03.751: V/MAIN(3942): ONSTOP 07-28 14:48:03.751: V/MAIN(3942): ONDESTROY 07-28 14:48:03.761: D/SERVIZIO(3942): ONDESTROYSembra la perfetta reversibilità dell'avvio...
Riavvio Main:
07-28 14:49:09.765: V/MAIN(4195): ONCREATE 07-28 14:49:09.765: V/MAIN(4195): ONSTART 07-28 14:49:09.775: V/MAIN(4195): ONRESUME 07-28 14:49:09.795: D/SERVIZIO(4195): ONCREATEOra schiaccio il tasto OVERVIEW:
07-28 14:50:01.986: V/MAIN(4195): ONPAUSE 07-28 14:50:02.647: V/MAIN(4195): ONSTOP 07-28 14:50:02.657: D/SERVIZIO(4195): ONDESTROYBene, MAIN non viene distrutto, ma viene distrutto il SERVICE in relazione all'evento ONSTOP di MAIN.
Rischiaccio il tasto OVERVIEW:
07-28 14:51:09.682: V/MAIN(4195): ONSTART 07-28 14:51:09.682: V/MAIN(4195): ONRESUME 07-28 14:51:09.722: D/SERVIZIO(4195): ONCREATEEsattamente reversibile al primo click.
Conclusioni per il momento:
- Il tasto INDIETRO distrugge completamente un'activity
- Il tasto OVERVIEW riporta l'activity allo stato "stoppato" ma non la distrugge completamente.
Ora provo solo con una MAIN svincolata da qualsiasi SERVICE (rimuovo il codice per il bindaggio)
07-28 14:54:26.654: V/MAIN(4401): ONCREATE 07-28 14:54:26.654: V/MAIN(4401): ONSTART 07-28 14:54:26.654: V/MAIN(4401): ONRESUME(come di prassi, all'apertura, senza eventi del SERVICE).
Tasto INDIETRO:
07-28 14:55:24.421: V/MAIN(4401): ONPAUSE 07-28 14:55:25.261: V/MAIN(4401): ONSTOP 07-28 14:55:25.261: V/MAIN(4401): ONDESTROYche è giusto...
Ora riavvio e poi premo il tasto OVERVIEW:
07-28 14:56:12.998: V/MAIN(4401): ONCREATE 07-28 14:56:12.998: V/MAIN(4401): ONSTART 07-28 14:56:12.998: V/MAIN(4401): ONRESUME .......... 07-28 14:56:35.350: V/MAIN(4401): ONPAUSE 07-28 14:56:35.950: V/MAIN(4401): ONSTOPHo le finestrelle impilate...
Ora ripremo il tasto OVERVIEW:
07-28 14:57:12.016: V/MAIN(4401): ONSTART 07-28 14:57:12.016: V/MAIN(4401): ONRESUMEBene: comportamento perfettamente univoco.
Nessun commento:
Posta un commento