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?
'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
Io invece avevo pensato a qualcosa del genere...nell'activity main: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!!)
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"
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