Activitatea de clasă, Android, programare

Clasa Activitate este probabil cea mai importantă clasă din care este construită aplicația Android. Această clasă reprezintă activitatea vizuală a aplicației și determină acțiunile pe care le poate efectua utilizatorul. Într-o aplicație Java, trebuie să existe cel puțin o clasă care sa extins din clasa de activitate părinte. Prin urmare, este important să cunoaștem și să putem aplica metodele din clasa de activitate. Acest articol este o traducere a documentației Google [1].







Clasa de activitate a apărut (se extinde) din clasa ContextThemeWrapper. și a implementat metodele (implementează) de ComponentCallbacks2. KeyEvent.Callback. LayoutInflater.Factory2. View.OnCreateContextMenuListener. Window.Callback.

ierarhie de clase, din care a venit clasa de activitate: java.lang.Object -> android.content.Context -> android.content.ContextWrapper -> android.view.ContextThemeWrapper -> android.app.Activity.

Succesorii direcți cunoscuți ai activității (subclase directe): AccountAuthenticatorActivity. ActivityGroup. AliasActivity. ExpandableListActivity. FragmentActivity. ListActivity. NativeActivity.

Cunoscuți moștenitori indirecți ai activității (subclase indirecte): ActionBarActivity. LauncherActivity. PreferenceActivity. TabActivity.

[Prezentarea clasei de activitate]

Activitatea este tradusă ca o acțiune. Aceasta este o esență care personifică tot ce poate face un utilizator. Aproape toate instanțele și versiunile activitu interacționează direct cu utilizatorul, astfel încât clasa de activitate este responsabil pentru crearea unei ferestre în care puteți plasa vizual setContentView interfeței GUI provocare (vizualizare). In timp ce activitu de multe ori prezentate utilizatorului ca o fereastră maximizată, activitu poate fi, de asemenea, utilizat într-un mod diferit: ca o fereastră flotantă (cu o temă, care este setat windowIsFloating proprietate), sau activitu pot fi încorporate într-o altă activitate (folosind ActivityGroup). Fiecare aplicație creată în Java creează cel puțin o subclasă care este extinsă din clasa Activity:

În același timp, într-o subclasă generată de activitate, de obicei vor fi implementate două metode:

onCreate (Bundle) aici inițializați activitatea. Cel mai important lucru aici cauza setContentView (int), în cazul în care resursa de identificare int care definește interfața cu utilizatorul (GUI), și de a folosi findViewById apeluri (int) pentru a avea acces la widget-uri (de control), care au nevoie pentru a lucra în software-ul.
onPause () aici procesați situația când utilizatorul a plecat de la serviciu cu această activitate. Cel mai important lucru este să înregistrați (amintiți-vă) toate modificările efectuate de utilizator (de obicei, datele conțin ContentProvider).

Pentru a putea utiliza activitatea împreună cu Context.startActivity (), toate clasele de activități trebuie să aibă descrieri corespunzătoare - o declarație în fișierul AndroidManifest.xml al pachetului de aplicații.

Acest articol va acoperi următoarele subiecte:

1. Fragmente.
2. Activitatea ciclului de viață.
3. Modificări de configurare.
4. Rulați Activitate și obțineți rezultate.
5. Păstrarea unui anumit stat (stat persistent).
6. Permisiuni.
7. Ciclul de viață al procesului.

Clasa de activitate este o parte importantă a cererii, în orice moment, viața de aplicare, precum și copii ale metodei de pornire de activitate și combinarea acestora este o bază fundamentală a modelului de aplicații platforma Android. Pentru a lua în considerare viitorul și structura cererii în detaliu și cum să se comporte în această activitate, vă rugăm să citiți Ghidul dezvoltatorului „Bazele Application“ (elementele de bază ale aplicației) și „Sarcini și înapoi stivă“ (problema și stiva inversă). De asemenea, puteți găsi o discuție detaliată despre crearea activităților în documentația pentru utilizarea activității.







Începând cu versiunea Android HONEYCOMB a implementării clasei de activitate, ei pot folosi clasa Fragment. pentru a împărți mai bine codul în module și pentru a crea o interfață de utilizator mai complexă, care va ajuta la ajustarea aplicației pentru diferite tipuri de ecran - mari și mici.

[Activitatea ciclului de activitate (ciclul de viață al activității)]

Activitățile din sistem sunt tratate ca o serie de activități. Atunci când lansează o nouă activitate, acesta este plasat pe partea de sus a stivei și să devină activ de lucru (activitatea de funcționare) - în timp ce activitatea anterioară sunt întotdeauna mai mici în stivă, și nu merge înapoi în poziția superioară, deoarece există o activitate nouă.

Activitatea Y are, în esență, 4 stări:

• Dacă activitatea se află pe partea din față a ecranului (în partea superioară a teancului), atunci este considerată activă sau în desfășurare.
• În cazul în care activitatea a pierdut concentrarea, dar este încă vizibil (de ex., E. O nouă activitate de ecran complet sau semi-transparent, are să se concentreze și se află deasupra activității dvs.), se consideră că activitatea este oprită (întreruptă). Activitatea este întreruptă complet în viață (menține toate informațiile de stat și membru și rămâne atașat la managerul de ferestre), dar poate fi ucis de către sistemul în situații de extremă lipsă de memorie.
• Dacă activitatea este complet ascunsă de o altă activitate, aceasta se oprește. Activitatea sa oprit încă mai păstrează statutul și informațiile sale despre elementul, dar acesta nu mai este vizibil pentru utilizator și fereastra sa este ascunsă, iar cel mai probabil, această activitate va fi ucis de sistem atunci când este nevoie de memorie pentru altceva.
• Dacă activitatea este întreruptă sau oprită, sistemul poate să-l elimine din memorie, fie prin solicitarea sfârșitului aplicației, fie prin simpla închidere a procesului. Când activitatea este afișată din nou pentru utilizator, aceasta trebuie să fie complet reluată și restaurată în starea sa anterioară.

Următoarea diagramă arată care state importante desfășoară activitatea și în ce ordine. Dreptunghiurile gri indică metodele de apel invers pe care le puteți implementa pentru a efectua operații atunci când activitatea trece între state. Ovalurile de culoare reprezintă stările de bază ale activității în care poate locui.

Activitatea de clasă, Android, programare

Există trei cicluri cheie care sunt interesante în urmărirea stării de activitate:

• întreaga durată a vieții este contorizată de la primul apel peCreate (Bundle) la ultimul singur apel peDestroy (). Activitatea realizează toate setările stării sale "globale" în corpul onCreate () și eliberează toate resursele ocupate din corp peDestroy (). De exemplu, dacă un fir rulează în fundal care descarcă date prin rețea, acest flux poate fi creat în corpul onCreate () și oprit în corp peDestroy ().
• Durata de viață vizibilă se calculează între apelul onStart () înainte de apelul corespunzător onStop (). Utilizatorul poate vedea lucrarea activității de pe ecran, chiar dacă s-ar putea să nu fie în prim-plan și în interacțiunea cu utilizatorul în acest timp. Între aceste două metode, puteți deține resursele necesare pentru afișarea activității pentru utilizator. De exemplu, vă puteți conecta la BroadcastReceiver onStart () organism pentru a monitoriza modificările care apar în interfața grafică, și deregister-l în onStop (), atunci când utilizatorul nu mai vede afișajul de activitate. onStart () și onStop () poate fi apelat de mai multe ori, o dată de activitate devin vizibile și invizibile pentru utilizator.
• durata de viață a primului câmp se produce între apelul onResume () înainte de apelul onPause () corespunzător. În acest timp, activitatea este la nivelul superior (partea de sus a tuturor celorlalte activități), și pot interacționa cu utilizatorul. Activitatea poate tranzita în mod frecvent între statele continuă să lucreze în starea de pauză - de exemplu, atunci când dispozitivul intră în stare de repaus atunci când sunt livrate la rezultatul codului de activitate, a pus o nouă intenție este livrat - astfel încât codul în aceste metode ar trebui să fie destul de simplu și neresursoemkim.

Ciclul de viață complet al activității este determinat de următoarele metode ale clasei de activitate. Toate aceste cârlige pot fi suprascrise, astfel încât să facă lucrarea corectă atunci când se schimbă starea activității. Toate activitățile vor implementa onCreate (Bundle) pentru a efectua configurația inițială; de asemenea, de multe ori trebuie să pună în aplicare onPause () pentru a accepta modificările de date sau pentru a se pregăti în alt mod să nu mai interacționeze cu utilizatorul. În momentul în care implementați aceste metode, trebuie să vă apelați superclama (clasa parentală).

De obicei, mișcările ciclului de viață al unei activități arată astfel:







Trimiteți-le prietenilor: