Oprirea și repornirea corespunzătoare a activității dvs. este un proces important al ciclului de viață al unei activități. care oferă utilizatorilor sentimentul că aplicația dvs. este mereu în viață și nu își pierde progresul. Există mai multe scenarii cheie în care activitatea dvs. se oprește și se repornește:
Clasa de activități oferă două metode de ciclu de viață, onStop () și onRestart (). care vă permit să procesați în mod specific modul în care activitatea dvs. se va opri și reporniți. Spre deosebire de starea de suspendare, ceea ce înseamnă o suprapunere parțială a elementelor UI, starea de stop garantează faptul că interfața cu utilizatorul nu mai este vizibilă, iar focalizarea utilizatorului se află într-o altă activitate (sau o aplicație complet diferită).
Notă: .. Deoarece sistemul ține de activități exemplu în memoria sistemului atunci când acesta este oprit, este posibil să nu trebuie să pună în aplicare onStop () și onRestart () (sau chiar onStart () metode deloc pentru cea mai mare parte a activității, care este relativ simplu, activitate va sa oprit și repornit este destul de normal, și poate fi nevoie să utilizați numai onPause () pentru a întrerupe acțiunea curentă și deconectarea de resurse de sistem.
Figura 1. Când utilizatorul îți părăsește activitatea. sistemul solicită Stop () pentru a termina activitatea (1). Dacă utilizatorul revine la momentul activității. sistemul solicităRestart () (2), apoi rapid onStart () (3) și onResume () (4). Rețineți că indiferent de scenariul care determină oprirea activității. sistemul solicită întotdeauna pePause () înainte de a apela Stop ().
Opriți activitatea dvs.
Când activitatea dvs. primește un apel la metoda onStop (), nu puteți vedea nimic și trebuie să eliberați aproape toate resursele care nu sunt necesare până când utilizatorul le folosește. După terminarea activității, sistemul poate distruge instanța, dacă este necesar, pentru a restaura memoria sistemului. În cazuri extreme, sistemul poate să vă ucide pur și simplu procesul de solicitare fără a apela metoda finală de apel inversă (), deci este foarte important să utilizați onStop () pentru a elibera resursele care ar putea duce la o scurgere de memorie.
Deși metoda onPause () este apelată înainte de onStop (). trebuie să utilizați onStop () pentru a efectua operații de terminare mai mari și mai exigente, cum ar fi scrierea de informații în baza de date.
De exemplu, aici este implementarea onStop (). care stochează conținutul notei de draft într-un magazin permanent:
Notă: Chiar dacă sistemul vă distruge activitatea. Când a încetat, ea încă mai păstrează statutul de View obiecte (de exemplu, de text în EditText) în Bundle (în pată de cerneală cu perechi cheie-valoare), și le restabilește, în cazul în care utilizatorul se întoarce la aceeași instanță de activitate (lecția următoare explică mai multe despre utilizarea Bundle pentru a salva alte date de stare în cazul în care activitatea dvs. este distrusă și recreată).
Porniți / reporniți activitatea
Când activitatea dvs. revine în prim-plan din starea stop, acesta primește un apel peRestart (). Sistemul determină, de asemenea, metoda onStart (), care are loc de fiecare dată când activitatea devine vizibil pentru utilizator (fie reporni sau obiect este creat pentru prima dată). onRestart () metoda, cu toate acestea, este invocată numai atunci când activitatea este reluată din starea oprită, astfel încât să puteți folosi pentru munca de restaurare specială, care ar putea fi necesare doar în cazul în care activitatea a fost oprită anterior, dar nu a distrus.
Aceasta este o raritate atunci când aplicația ar trebui să utilizeze peRestart () pentru a restabili starea activității. astfel încât nu există linii directoare pentru această metodă care să se aplice la majoritatea aplicațiilor. Cu toate acestea, deoarece metoda onStop () a fost să curețe în mod substanțial toate resursele din activitatea dvs. va trebui să le re-creați când reporniți. Cu toate acestea, trebuie să creați și instanțe de resurse atunci când activitatea dvs. este creată pentru prima dată (când nu există o copie existentă a activității). Din acest motiv, trebuie să utilizați în mod normal metoda onStart () ca o completare a metodei onStop (), deoarece sistemul solicită Start () ca atunci când vă creați activitatea. și când activitatea este reluată din starea stopată.
De exemplu, deoarece utilizatorul s-ar putea să fi fost departe de aplicația dvs. pentru mult timp înainte de a se întoarce la el, metoda onStart () este un loc bun pentru a vă asigura că sunt incluse caracteristicile sistemului necesare: