Scenario:
Ho quattro attività nella mia applicazione Android, consente di dire A, B, C e D. C'è un Constants.java
di classe in app che si estende Application
classe al fine di mantenere lo stato di applicazione globale. La classe Constants ha tutte le variabili costanti dell'app. Il flusso di attività è come questo A-->B-->C-->D
. Quando si preme il pulsante Indietro dall'attività A, sto chiamando il metodo finish() che termina l'attività A e chiude l'applicazione. Dopodiché, se apro l'app da tutte le app, c'è una variabile in Constants.java
il cui valore persiste dall'ultimo avvio. La stessa cosa non sta accadendo quando sto facendo System.exit(10)
seguito da Process.killProcess(Process.myPid())
dall'attività A (sul retro premuto).Cosa succede quando tutte le attività di un'applicazione termina?
Domande:
- Will finitura tutte le attività chiamando finitura() di ogni attività si chiuderà l'applicazione (Il processo)?
- In che modo il valore di una variabile persiste anche se tutte le attività sono state completate (chiuse)?
- È corretto chiamare
System.exit(10)
seguito daProcess.killProcess(Process.myPid())
per uscire dall'applicazione?
Aggiornamento:
Come posso cancellare le costanti applicazione in uscita dell'applicazione (Indietro stampa del HomeActivity)?
Le costanti per definizione non cambiano, quindi perché preoccuparsi di eliminarle? – m0skit0
Semplice: non chiamare 'System.exit()' (non consigliato affatto come discusso in SO). Basta cancellare le variabili quando HomeActivity è finito. –