Italian Come si puo' far girare una App in background?

Walter Scafati

Active Member
Licensed User
Longtime User
Ciao a tutti,
devo fare una piccola App che ogni 30 min deve emettere un suono. Ho provato ma quando lo schermo e' spento o l'App e' in background non funziona piu'.
Come posso fare?

Grazie.
 

udg

Expert
Licensed User
Longtime User
E non dimenticare di considerare anche gli sticky services.
E magari #SartAtBoot per prendere in considerazione spegnimento e riaccensione del device.

udg
 

Walter Scafati

Active Member
Licensed User
Longtime User
Devi usare un modulo di servizio, con l'utilizzo di StartServiceAt.
Non so se funzioni anche con lo schermo spento ma di sicuro funziona con l'app in background.

Questo è uno dei tantissimi thread in cui se ne parla.

Questo è più in generale sui moduli di servizio.

Grazie LucaMs, ho letto un po' ma non ho perfettamente capito come funziona il "Modulo servizio".
In pratica il modulo servizio non può accedere ai moduli della Acttivity, ma La Activity può accedere alle variabili del modulo servizio, giusto?
Mi sembra di capire che il rischio più grosso è che, in condizioni di uso massiccio di RAM da parte del dispositivo, la app in background potrebbe essere chiusa da Android, vero?

Se non ho capito male, usando il StartServiceAt si potrebbe ovviare a questo, ma non ho capito come si usa e che cosa fa di preciso.

Grazie
 

LucaMs

Expert
Licensed User
Longtime User
In pratica il modulo servizio non può accedere ai moduli della Acttivity,
Per "moduli" intendiamo i vari componenti di un'app, quindi un'Activity è un modulo, così come lo sono i moduli di servizio e i moduli di codice; per cui non ho capito bene la tua domanda. Le variabili dichiarate nelle Process_Globals di qualunque tipo di modulo sono accessibili da dovunque. Le routine sono un discorso invece diverso.
Comunque, puoi immaginare i moduli di servizio come delle Activity senza interfaccia grafica, considerando però che ci sono varie differenze, ad esempio gli eventi delle Activity ed il "ciclo di vita" dell'Activity, oppure il fatto che i servizi possono essere fatti partire in modi diversi e persistere in modi diversi.

Mi sembra di capire che il rischio più grosso è che, in condizioni di uso massiccio di RAM da parte del dispositivo, la app in background potrebbe essere chiusa da Android, vero?
Vero.

Se non ho capito male, usando il StartServiceAt si potrebbe ovviare a questo, ma non ho capito come si usa e che cosa fa di preciso.
Io non l'ho ancora mai usato ma ho letto tanti post in cui se ne parla e puoi trovare tanti esempi (e magari problemi risolti):
https://www.b4x.com/android/forum/pages/results/?query=startserviceat&product=b4a
 

Walter Scafati

Active Member
Licensed User
Longtime User
Per moduli intendo: EditText, Spinner, Label ecc.
In pratica se una activity lancia un modulo di servizio, quest'ultimo non riesce ad accedere agli EdiitText, Spinner, Label ecc dell'activity chiamante.
 
Top