Gli eventi che potrebbero interessarti sono:
- B4XPage_Created - Called once when the page is created. This will happen before the page becomes visible or after a call to B4XPages.AddPageAndCreate.
- B4XPage_Appear - Called whenever the page becomes visible.
- B4XPage_Disappear - Called whenever a visible page disappear.
- B4XPage_Background - Called when the app is moved to the background. This event will be raised in all pages that implement this sub, not just the top event. This is a good place to save anything that needs to be save as the process might be killed later. Note that in B4J it is raised when the last page is closed.
- B4XPage_Foreground - Called when the app moved to the foreground.
- B4XPage_CloseRequest (B4J / B4A) - In B4A it is called when the user clicks on the back key or on the up indicator. In B4J it is called when the user clicks on the close button. See post #4 for more information.
Quindi, se hai delle particolari inizializzazioni in Create comprendi che comunque tu chiuda la pagina non verranno rieseguite. Devi spostarle in Appear.
Background/Foreground ti sono utili per salvare/leggere da disco dati "permanenti"
CloseRequest può essere utile per il solito messaggio "sicuro di voler terminare?" , ad esempio.
Per chiudere hai il semplice ClosePage(Me), che "chiude" la pagina (ma non la distrugge) e passa a quella che la precede nello stack. Se la pagina era stata "chiamata" con B4XPages.ShowPageAndRemovePreviousPages allora sullo stack non c'è nulla e si attiva il termine del programma.