Italian B4XPage_Background

Fulvio75

Well-Known Member
Licensed User
Ciao a tutti,
ho bisogno un a spiegazione, l'evento B4XPage_Background di ogni pagina creata non viene genereato solo quando l'applicazione viene messa in background ovvero alla pressione del pallino oppure del quadrato?
Mettendo una variabile In B4XPage_Background in ogni pagina dell'app, variabile di tipo boolean che diventa true quando l'evento viene chiamato ho notato che all'avvio dell'applicazione questa variabile è sempre true.
Ho poi messo una la stessa variabile in Appear che diventa False e una volta avviata l'applicazione funziona correttamente come vorrei.
Il problema è che all'avvio dell'applicazione questa variabile è sempre True quindi il dubbio è che il B4XPage_Background di ogni pagina creata venga richiamato appunto alla creazione della pagina.
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Posta un esempio.
A me l'evento Background, di ogni pagina aperta, viene eseguito solo quando mando l'app in background cliccando il pallino.
 

Sagenut

Expert
Licensed User
Longtime User
Mi correggo...... viene eseguito l'evento Background di ogni pagina, che siano aperte o meno.
 

Fulvio75

Well-Known Member
Licensed User
Mi correggo...... viene eseguito l'evento Background di ogni pagina, che siano aperte o meno.
allora è corretto, per ovviare a questo problema la variabile che ho inserito la pongo a False in create page che viene eseguito solo una volta
 

Sagenut

Expert
Licensed User
Longtime User
Se devi rilevare quando l'app viene messa in background credo sia sufficiente mettere l'evento background nella B4XMainpage.
Quando l'app torna in foreground invece viene eseguito Appear della pagina che era effettivamente aperta prima di andare in background.
Quindi Appear potrebbe essere necessario metterlo in tutte le pagine, secondo le tue esigenze e cosa devi ottenere.
 

Fulvio75

Well-Known Member
Licensed User
Fatto così risolto.

B4X:
Sub Class_Globals
    
    Private Root As B4XView 'ignore
    Private xui As XUI 'ignore
    
    Private BackGround As Boolean

End Sub

'You can add more parameters here.
Public Sub Initialize As Object
    
    Return Me
    
End Sub

'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
    
    Root = Root1
    Root.LoadLayout("layTestPage")
    
    BackGround = False

End Sub

private Sub B4XPage_Background
    
    BackGround = True

End Sub
 

LucaMs

Expert
Licensed User
Longtime User
Mettendo una variabile In B4XPage_Background in ogni pagina dell'app, variabile di tipo boolean che diventa true quando l'evento viene chiamato ho notato che all'avvio dell'applicazione questa variabile è sempre true.
Sicuro di quanto sopra? "Io questo non creTo" (Crozza-Razzi).

All'avvio dell'app o all'apertura (visualizzazione) di qualunque pagina, GLI eventi B4XPage_Background di ogni pagina (non si è obbligati a scrivere questa routine-evento nelle pagine, può essere molto utile) NON dovrebbero scattare, dovrebbero farlo solo quando l'app vada in pausa (in pratica è l'equivalente di Activity_Pause).

Nella Initialize, metti:
B4XPages.GetManager.LogEvents = True

Nel Main (Activity, in B4A), metti:
#BridgeLogger: True

così nel tab dei log vedrai quando scatta ogni evento B4XPages, anche se fossi connesso tramite Bridge.


1732534478938.png
 
Last edited:

Fulvio75

Well-Known Member
Licensed User
si mi trovo la variabile Background = true posta in B4XPage_Background tutte le volte che avvio l'app.
Solo mettendola in False in B4XCreated rimane False.
Nella mainpage all'avvio è false anche se messa in B4XPage_Background, solo nelle altre 8 pagine è sempre vera all'apertura di queste pagine per la prima volta.
 

LucaMs

Expert
Licensed User
Longtime User
si mi trovo la variabile Background = true posta in B4XPage_Background tutte le volte che avvio l'app.
Solo mettendola in False in B4XCreated rimane False.
Nella mainpage all'avvio è false anche se messa in B4XPage_Background, solo nelle altre 8 pagine è sempre vera all'apertura di queste pagine per la prima volta.
Allega un piccolo esempio
 
Top