Qual è il modo giusto per chiudere le app in Android?


69

Sono nuovo sulla piattaforma Android, e questa è probabilmente una domanda stupida, ma ...

Come si chiude un'app?

Quando sono in un'app e voglio uscire, faccio semplicemente clic su "Home" e proseguo, ma ho appena installato un'app Task Manager e ho notato che tutto è rimasto in esecuzione.

C'è un modo per uscire dalle app? O devo usare Task Manager ogni volta che esco da qualcosa?


Risposte:


48

Se esci dall'app utilizzando il BACKpulsante, chiamerà onDestroy()l'attività corrente. Se la premi HOMEsolo chiama, onPause()
non preoccuparti troppo di ciò, le attività non consumano la batteria, rimangono solo nella memoria in modo che possano essere aperte più veloce in futuro.

Non consiglierei di usare una di quelle app killer per Android che Android è progettato per mantenere quel materiale in memoria per un motivo, l'uso di un killer per attività è solo un ulteriore servizio aggiuntivo che si trascina via la batteria. App che eseguono servizi in background come Twitter o client di posta elettronica che tirano i loro server, qualsiasi buona app che ha un servizio del genere avrà un'opzione per disattivarla.


1
Ho notato un paio di applicazioni che non mangiano attraverso un sacco di batteria in questo stato di pausa. Vale a dire, l'ultima versione di Google Maps e un gioco che ho chiamato GalaxIR. Quindi tieni d'occhio i criminali cattivi e assicurati di chiuderli correttamente.
keithjgrant,

1
ti sbagli, se sta mangiando la pastella che è un servizio in background.
Nathan Schwermann,

5
È infatti possibile avere un'applicazione che non è ben sviluppata e non segue il ciclo di vita dell'applicazione Android. Ad esempio, un thread può essere lasciato attivo in un'attività anche dopo che è stato messo in pausa dal sistema operativo (premendo Home), in questo caso l'app continuerà a utilizzare la batteria.
jmbouffard,

1
Ho scoperto che molte app non escono quando premo il pulsante Indietro. Ad esempio: Pandora, G
Clay Nichols,

1
(il mio tempo di modifica è scaduto) .... altre app che non si chiudono sul pulsante Indietro: Pandora (che continua a giocare anche dopo aver premuto Indietro), Google Play Store, FaceBook, Podkicker. Il modo in cui sto testando è quello di fare clic sul pulsante Indietro fino a quando l'app scompare (di solito questo mi riporta su Home) e quindi eseguire Easy Task Killer.
Clay Nichols il

25

Sono abbastanza sicuro che tutto ciò che ho mai letto dica che il Backpulsante è il modo giusto per uscire dalle app.

Premendo Homeli lascia in esecuzione in background fino a quando Android non decide più che non sono più necessari, il che può essere utile se devi solo passare da un'app all'altra per controllare qualcosa (tenere premuto Home per un paio di secondi ti fornisce l'elenco delle app in esecuzione di recente puoi tornare alla maggior parte dei telefoni), ma uscendo con il pulsante Indietro si dice all'app che si desidera che si chiuda.


3
Tenendo Homepremuto il pulsante è sufficiente elencare le ultime 6 app aperte, non quelle in esecuzione.

@ Loïc: mostra 8 per me.
Ale

1
@LoicWolff, AlEverett Dipende dal programma di avvio in questione utilizzato e dalla ROM stessa.
t0mm13b,

Non è del tutto vero. Le attività non vengono eseguite in background su Android.
Dan Hulme,


7

Le attività non vengono eseguite in background

In Android, le attività (ovvero la parte dell'app che puoi vedere) non vengono mai eseguite in background. Possono funzionare (e utilizzare la batteria) solo mentre sono sullo schermo. L'attività si interrompe indipendentemente dal fatto che si usi home o back per lasciarla. L'unica differenza è quali dati Android chiede all'app di salvare, quindi nessuna delle due opzioni è "la strada giusta". Dipende solo da cosa vuoi fare.

Casa

Se usi home , Android lascia l'app nello stesso stato, in modo che se torni più tardi (ad es. Attraverso l'elenco delle app recenti), rimarrà nello stesso stato in cui l'hai lasciata: sullo stesso schermo, con le stesse cose mostrate. Ad esempio, se si tratta di un'app di posta elettronica e tu stavi guardando una e-mail, ricorderà quale e-mail era e ti mostrerà la stessa.

Alla fine (dopo circa mezz'ora), Android conclude che non tornerai all'app, quindi reimposta questo stato: la prossima volta che avvierai l'app, partirà dalla schermata principale / principale. Per continuare l'esempio, l'app di posta elettronica dimenticherà quale e-mail e cartella stavi visualizzando e ti mostrerà la posta in arrivo.

Indietro

Se lo usi di nuovo , stai dicendo ad Android che non vuoi tornare a questa vista. Distruggerà le informazioni su ciò che stavi guardando subito. La prossima volta che avvierai l'app, mostrerà la schermata frontale (ad es. La posta in arrivo).

Come altri hanno già detto, le app possono controllare il comportamento del pulsante Indietro : ad esempio, i browser Web lo usano per tornare indietro nella cronologia del browser. Quello che ho descritto è il comportamento predefinito del pulsante Indietro e gli sviluppatori sono invitati a mantenere tale comportamento per evitare confusione.

Processi in background memorizzati nella cache

Qualunque sia il metodo utilizzato, Android lascerà l'app in memoria (ma non in esecuzione) il più a lungo possibile. Questo deve essere più efficiente. Quando torni all'app, se è ancora in memoria, Android può eseguirla di nuovo immediatamente; se non è ancora in memoria, Android deve dedicare tempo ed energia a caricare nuovamente l'app dallo spazio di archiviazione.

Nelle vecchie versioni di Android, le app lasciate in memoria in background in questo modo erano incluse nell'elenco delle "app in esecuzione". Questo è un po 'confuso per gli utenti - fa pensare alle persone che l'app sia davvero ancora in esecuzione - quindi le versioni più recenti chiamano queste app "processi in background memorizzati nella cache", per chiarire che sono solo cache, non in esecuzione.

Che dire delle app in background?

In precedenza, ho detto che le attività non si svolgono in background. In che modo il tuo client di posta elettronica controlla la posta? Oltre alle attività, le app possono avere servizi . I servizi non dispongono di alcuna GUI per la visualizzazione o l'interazione, ma vengono eseguiti in background. Di solito, un servizio verrà eseguito raramente, ad esempio per controllare la posta una volta ogni ora, ma è possibile che lo sviluppatore dell'app esegua il servizio continuamente, consumando la batteria.

Lasciare un'attività con back o home non cambia il modo in cui Android tratta i servizi dalla stessa app: il servizio può continuare a funzionare o essere attivato in un secondo momento (la prossima volta che è necessario il controllo della posta).

Sommario

In breve, non importa se usi back o home : cambia solo ciò che l'app ti mostra alla prossima esecuzione. Non ha alcun effetto sull'uso della batteria. Nessuno dei due corrisponde a "uscire" da un programma sul tuo PC.


Sono così felice che qualcuno l'abbia coperto! Sono uno sviluppatore, ma lavoravo per Verizon Wireless e non posso dirti quante persone erano preoccupate per questo quando non ce n'era bisogno.
Roan,

3

In Android, le applicazioni non devono mai essere chiuse e il sistema operativo si occupa della pulizia della memoria di tutte le applicazioni rimanenti quando le risorse sono necessarie altrove. L'uso di un task killer interromperà semplicemente il normale funzionamento del sistema operativo e potrebbe persino rallentare il dispositivo perché le applicazioni dovranno sempre essere ricaricate dall'inizio.

Il ciclo di vita delle applicazioni Android funziona in modo tale che le applicazioni non in primo piano vengano spostate in uno stato di pausa che non utilizza più alcuna CPU; viene conservato solo il contenuto della memoria nel caso in cui l'applicazione venga riaperta; e la memoria verrà liberata se necessario.

Detto questo, lo sviluppatore dell'applicazione ha la responsabilità di seguire il ciclo di vita dell'applicazione quando crea la sua applicazione in modo che possano verificarsi bug o errori che si tradurranno in un'applicazione che non si ferma o si interrompe mai veramente. Se incontri tale applicazione e cosa chiuderla puoi farlo tramite "Impostazioni" -> "applicazioni" -> "Gestisci applicazioni" selezionando "Forza arresto" sull'applicazione.

Ma non consiglierei davvero di usare un task killer che è costantemente in esecuzione sul dispositivo.


1

Voglio solo aggiungere nella risposta di Schwiz che sono solo poche righe di codice necessarie per sovrascrivere la funzionalità del pulsante Indietro. Quindi non è sempre affidabile chiudere l'app. Pertanto, se lo sviluppatore dell'app non desidera chiudere l'app premendo il pulsante Indietro, non verrà chiusa.

Sebbene la maggior parte degli sviluppatori di app appaia una finestra di avviso quando si preme il pulsante Indietro nel menu principale dell'app, chiedendo se l'utente intende uscire dall'app o meno, se si fa clic su Esci, l'app viene chiusa.

La risposta corretta potrebbe essere questa: la chiusura dell'app è completamente sullo sviluppatore dell'app, se vogliono che l'app si chiuda premendo il pulsante Home, inseriranno il codice di uscita onPause(). Se lo vogliono sul pulsante Indietro, lo inseriranno nel onBackKeyPressed. Quindi non è davvero nelle mani dell'utente.

L'utente può semplicemente evitare di utilizzare le app che non forniscono la corretta funzionalità di chiusura, quando non sono necessarie. I task manager non sono un buon modo per chiudere l'app, dal momento che può bloccare l'app e non dare loro la possibilità di salvare il proprio stato.

Il sistema operativo chiude l'app ogni volta che è necessario, quindi non dovresti preoccuparti troppo di esso.

Modifica:
esiste un'opzione per distruggere le applicazioni, non appena si esce dall'app, ovvero quando si fa clic sul tasto Home. Puoi andare su Settings-> Developer Options-> Don't keep Activities. Sebbene sia un'opzione per sviluppatori, ma se sei troppo preoccupato per le app in esecuzione in background, puoi utilizzare questa opzione. Ma tieni presente che non è consigliabile essere utilizzato da non sviluppatori.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.