Italian No background

hollywoodjack

Member
Licensed User
Longtime User
Come posso fare per evitare che la mia applicazione vada in background (ad esempio quando premo il tasto back) o, peggio ancora, venga chiusa dal sistema operativo a causa della mancanza di memoria libera?
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ciao,
ma che tipo di applicazione è ?
E' un servizio ?
Per gestire il tasto back potresti usare questa porzione di codice:
B4X:
'Pulsante back
Sub Activity_KeyPress(KeyCode As Int) As Boolean    
   If KeyCode = KeyCodes.KEYCODE_BACK Then   ' Checks if the KeyCode is BackKey
      'Activity.Finish
   End If
End Sub

Ovviamente puoi metterci quello che vuoi.

Poi bisogna capire quale sia il motivo per cui la tua app debba stare sempre in background.
 

hollywoodjack

Member
Licensed User
Longtime User
No no, forse mi sono spiegato male...devo fare in modo che la mia app non vada in background (come ad esempio quando si preme il tasto back o quello home), deve poter verificare ogni tot di minuti lo stato della connessione...credo mi ci voglia un service con un timer o magari un service che ogni tot di tempo si riattivi...che ne pensi? Cmq qui ho trovato molte info utili, magari può servire a qualcun altro
 

GaNdAlF89

Active Member
Licensed User
Longtime User
intanto puoi disabilitare il tasto Back come ha detto arenaluigi...
per fare ciò che dici hai bisogno del Kiosk Service che trovi Qui
questo servizio rileva quando l'activity va in pausa (evento che si verifica quando si apre qualche altra app o si preme il tasto Home), e abilita un timer (che puoi impostare a 0) alla scadenza del quale ti riporta automaticamente nell'activity precedente.

il codice allegato nel topic che ti ho linkato va bene per app con un'unica activity, mentre per app con più activity si devono fare un bel pò di modifiche, oppure puoi scegliere di creare una singola activity con più panel (ognuno dei quali sostituisce un'activity), che renderai visibili e porterai in primo piano in base alle esigenze o agli stati dell'app (cosa che a me non piace, per questo sto cercando di modificare il kiosk affinché funzioni con più activity!!)
 
Last edited:

hollywoodjack

Member
Licensed User
Longtime User
intanto puoi disabilitare il tasto Back come ha detto arenaluigi...
per fare ciò che dici hai bisogno del Kiosk Service che trovi Qui
questo servizio rileva quando l'activity va in pausa (evento che si verifica quando si apre qualche altra app o si preme il tasto Home), e abilita un timer (che puoi impostare a 0) alla scadenza del quale ti riporta automaticamente nell'activity precedente.

il codice allegato nel topic che ti ho linkato va bene per app con un'unica activity, mentre per app con più activity si devono fare un bel pò di modifiche, oppure puoi scegliere di creare una singola activity con più panel (ognuno dei quali sostituisce un'activity), che renderai visibili e porterai in primo piano in base alle esigenze o agli stati dell'app (cosa che a me non piace, per questo sto cercando di modificare il kiosk affinché funzioni con più activity!!)
Io invece avevo pensato a qualcosa del genere...nell'activity main:
B4X:
Sub Activity_Create(FirstTime As Boolean)
if VERIFICA SE LA CONDIZIONE "CICCIO" RISULTA VERA then 
StartService(SERVIZIO)
end if
end sub

Sub Activity_Resume
if VERIFICA SE LA CONDIZIONE "CICCIO" RISULTA FALSA then
CancelScheduledService(SERVIZIO)
end if
end sub

' LA CONDIZIONE "CICCIO" CI DICE SE FAR PARTIRE O MENO IL SERVICE "SERVIZIO"

All'interno del service module SERVIZIO:
B4X:
Sub Service_Start
'voglio che il programma controlli ogni 15 min. lo stato della connessione
StartServiceAt("", DateTime.Now + 15 * DateTime.TicksPerMinute, False)
if VERIFICA LO STATO DELLA CONNESSIONE then
FAI QUELLO CHE TI CHIEDO
end if
end sub

Può funzionare anche così, cioè l'activity va in pausa ma il servizio continua a funzionare lo stesso? Un po' come accade ad esempio con quei programmi che impostano quando la connessione deve disabilitarsi, quando il cell deve andare offline, etc.
 
Last edited:
Top