Solo all'apertura dell'app.
Quindi tutte le volte che cambio activity mi tocca scollegare l'adattatore BT e rifare tutto nella nuova activity?Fulvio gli eventi vengono sollevati nel modulo/servizio/attività dov'è dichiarato, non dove lo utilizzi
Ci sono altri modi per sollevare l'evento in un modulo diverso. Ad esempio con CallSubQuindi tutte le volte che cambio activity mi tocca scollegare l'adattatore BT e rifare tutto nella nuova activity?
SiPublic Manager As BluetoothManager è una classe che dichiaro nel modulo BT
da activity A chiamo l'inizializzazione BT.Manager... quindi BT.manager prende sempre come riferimento activity A per gli eventi an suo interno? in questo caso AStream_NewData quando riceve i dati?
Funzionano nei luoghi dell'annuncio AStream.Initialize
CodiceCiao Fulvio,
Per modulo intendi il modulo di codice ? Perché esistono 3 tipi di moduli in b4a: di classe, di codice, e di servizio
private Sub AStream_NewData (Buffer() As Byte)
' Per modulo di codice
Modulocodice.AStream_NewData (Buffer)
' Per altra activity, classe o servizio
' mCallBack è il chiamante - Activity, classe o servizio
' il nome della sub chiamata deve contenere sempre _ (underscore) nel nome
' If SubExists(mCallBack,mEventName & "_NewData") Then CallSub2(mCallBack,mEventName & "_NewData",Buffer)
End Sub
private Sub AStream_NewData (Buffer() As Byte)
'Log("Data: " & Buffer.Length)
End Sub
Allora la questione è che il modulo di codice in B4A è la stessa cosa che scrivi nell'activity chiamante. Per passare l'evento al modulo devi fare cosi
ACTIVITY:private Sub AStream_NewData (Buffer() As Byte) ' Per modulo di codice Modulocodice.AStream_NewData (Buffer) ' Per altra activity, classe o servizio ' mCallBack è il chiamante - Activity, classe o servizio ' il nome della sub chiamata deve contenere sempre _ (underscore) nel nome ' If SubExists(mCallBack,mEventName & "_NewData") Then CallSub2(mCallBack,mEventName & "_NewData",Buffer) End Sub
Nel modulo di codice
B4X:private Sub AStream_NewData (Buffer() As Byte) 'Log("Data: " & Buffer.Length) End Su [/QUOTE]
' mCallBack è il chiamante - Activity, classe o servizio
' il nome della sub chiamata deve contenere sempre _ (underscore) nel nome
If SubExists(mCallBack,"Evento_NewData") Then CallSub(mCallBack,"Evento_NewData") ' Evento senza parametri
If SubExists(mCallBack,"Evento_NewData") Then CallSub2(mCallBack,"Evento_NewData",Buffer) ' Un parametro
If SubExists(mCallBack,"Evento_NewData") Then CallSub3(mCallBack,"Evento_NewData",Buffer, String2) ' Due parametri