JavascriptProva

giovedì 28 luglio 2016

Esperimenti sulle azioni dei tasti INDIETRO e OVERVIEW.

Digressione importante.
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): ONCREATE
Main 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): ONDESTROY
Sembra 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): ONCREATE
Ora 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): ONDESTROY
Bene, 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): ONCREATE
Esattamente reversibile al primo click.

Conclusioni per il momento:
  1. Il tasto INDIETRO distrugge completamente un'activity
  2. 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): ONDESTROY
che è 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): ONSTOP
Ho 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): ONRESUME
Bene: comportamento perfettamente univoco.

Nessun commento:

Posta un commento