Kas tieši Android programmēšanā ir Context
klase un kam tā tiek izmantota?
Es par to lasīju izstrādātāja vietnē, bet nesaprotu, kas tas ir saprotams.
Vienkārši sakot:
Kā jau norāda nosaukums, tas ir lietojumprogrammas/objekta pašreizējā stāvokļa konteksts. Tas ļauj jaunizveidotajiem objektiem saprast, kas ir noticis. Parasti jūs to izsaucat, lai iegūtu informāciju par citu programmas daļu (darbību un paketi/programmu).
Kontekstu var iegūt, izsaucot getApplicationContext()
, getContext()
, getBaseContext()
vai this
(ja atrodas klasē, kas paplašinās no Context
, piemēram, Application, Activity, Service un IntentService klasēs).
Tipiski konteksta lietojumi:
Jaunu objektu izveide: Jaunu skatījumu, adapteru, klausītāju izveide:
TextView tv = new TextView(getContext());
ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);
Pieeja standarta kopējiem resursiem: LAYOUT_INFLATER_SERVICE, SharedPreferences:
context.getSystemService(LAYOUT_INFLATER_SERVICE)
getApplicationContext().getSharedPreferences(*nosaukums*, *režīms*);
Pieeja komponentiem netieši: Attiecībā uz satura nodrošinātājiem, raidījumiem, nodomu
getApplicationContext().getContentResolver().query(uri, ...);
Konteksts ir sistēmas rokturis; tas nodrošina tādus pakalpojumus kā resursu atrisināšana, piekļuves iegūšana datubāzēm un preferencēm utt. Android lietotnei ir darbības. Konteksts ir kā rokturis uz vidi, kurā pašlaik darbojas jūsu lietojumprogramma. Aktivitātes objekts manto Context objektu.
Lai iegūtu vairāk informācijas, skatiet Ievads Android izstrādē ar Android Studio - pamācība.
Android Konteksts ir Interfeiss (vispārīgā nozīmē, nevis Java izpratnē; Java valodā Konteksts
patiesībā ir abstrakta klase!), kas ļauj piekļūt lietojumprogrammas resursiem un klasei un informācijai par lietojumprogrammas vidi.
Ja jūsu android lietojumprogramma būtu tīmekļa lietojumprogramma, jūsu konteksts būtu kaut kas līdzīgs ServletContext
(es šeit neveicu precīzu salīdzinājumu).
Jūsu darbības un pakalpojumi arī paplašina Context
, tāpēc tie manto visas šīs metodes, lai piekļūtu vides informācijai, kurā darbojas lietotne.