Italian [B4A] Come 'vedere' sistema operativo che si sta riavviando?

amorosik

Expert
Licensed User
App su Android 10, un service, in attesa di comandi via mqtt provenienti da pc X
Se l'operatore avvia la sequenza per riavviare o spegnere il sistema operativo, avrei bisogno di informare (sparargli un messaggio) il pc X che l'app sta per essere chiusa, e magari anche il motivo per cui questo sta avvenendo
1- Come fare per intercettare la richiesta chiusura app che invia Android ed eseguire qualche comando prima di essere 'terminata' ?
2- Come fare per 'leggere' il motivo della richiesta di chiusura (es "riavvio Andoid", "spegnimento Andorid", ecc..) ?
 

amorosik

Expert
Licensed User
Ringrazio per l'aiuto
Non so se ho capito bene
1 metto nel manifest questo
B4X:
AddReceiverText(SystemService,
<intent-filter>
    <action android:name=" android.intent.action.ACTION_SHUTDOWN" />
</intent-filter>)

2 aggiungo al progetto un service di nome SystemService
3 nel Service_Start del servizio appena creato, ci metto il codice che verra' eseguito ogni volta che viene invocato lo Shutdown sistema operativo

Mi sono capito bene?
 
Last edited:

amorosik

Expert
Licensed User
Ho gia' provato
Ma, visto che non mi funziona (nel senso che non vedo partire il codice dentro al Service_Start quando riavvio tel) allora ho pensato mancasse qualcosa
O ci fosse qualcosa di troppo
Insomma, o c'e' un errore o c'e' uno sbaglio
 

LucaMs

Expert
Licensed User
Longtime User
Ho trovato un modo parecchio più semplice: usare la libreria PhoneEvents.

Nello Starter:
B4X:
Sub Process_Globals
    Dim PhoneId As PhoneId
    Dim PE As PhoneEvents
End Sub

Sub Service_Create
    PE.InitializeWithPhoneState("PE", PhoneId)
End Sub

Sub PE_Shutdown (Intent As Intent)
    Log("Me sto pe' spegne, hehehe")
End Sub
 

LucaMs

Expert
Licensed User
Longtime User
Nello Starter:
Funzionerbbe anche se mettessi quel codice nella B4XMainPage, anche se "non ha senso".

Era una mia curiosità, provarci, per vedere se si potesse evitare di usare un servizio, in particolare lo Starter, e si potrebbe (questo è uno dei tanti motivi per i quali mi piacciono molto le B4XPages, non sono necessari i servizi).
Non ha senso, però, perché la libreria è solo per B4A, mentre le varie pagine vanno preparate per essere utilizzate anche in B4i e/o B4J.

Giusto un appunto per dire del vantaggio delle B4XPages (non sono necessari servizi in ascolto).
 
Top