Sobes.tech
Middle

Tətbiq konteksti ilə Aktivlik konteksti arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Application konteksti tətbiqin ümumi resurslarına giriş imkanı verir və bütün tətbiqin ömrü boyunca mövcuddur. Activity konteksti isə müəyyən bir Activity-nin həyat dövrünə bağlıdır, xüsusi ekran haqqında məlumat saxlayır və bu Activity-ə xas resurslara (məsələn, mövzu) giriş imkanı verir.

Əsas fərqlər:

  • Həyat dövrü: Application konteksti bütün tətbiq boyunca mövcuddur, Activity konteksti isə yalnız həmin Activity aktiv olduğu müddətdə.
  • Əhatə dairəsi: Application konteksti bütün tətbiq üçün qlobal, Activity konteksti isə xüsusi ekran üçün lokal.
  • Resurslara giriş: Application konteksti ümumi resurslar üçün, Activity konteksti isə Activity-ə xas resurslar üçün (məsələn, mövzu).
  • Yaddaş sızması: Activity kontekstindən düzgün olmayan istifadə (məsələn, statik sahədə saxlamaq) yaddaş sızmasına səbəb ola bilər, çünki o, Activity və onun resurslarına istinad edir. Application konteksti uzunmüddətli saxlama üçün daha təhlükəsizdir.

İstifadə nümunələri:

  • Ümumi sətirlər və ya rəngləri əldə etmək:
    // Hər yerdə tətbiqdə
    val appName = applicationContext.getString(R.string.app_name)
    
  • Activity-də View yaratmaq:
    // Activity daxilində
    val textView = TextView(this /* və ya this@MyActivity */)
    
  • Yeni Activity başlatmaq:
    // Activity daxilində
    val intent = Intent(this, DigərActivity::class.java)
    startActivity(intent)
    
  • SharedPreferences-ə giriş:
    // Hər iki kontekst işləyir, lakin Context.MODE_PRIVATE istifadə edildikdə, Activity konteksti üstün tutulur
    val prefs = getSharedPreferences("mənim_prefs", Context.MODE_PRIVATE)
    

Yaddaş sızmalarını qarşısını almaq və tətbiqin düzgün işləməsini təmin etmək üçün uyğun kontekstdən istifadə etmək vacibdir. Əksər hallarda, UI ilə bağlı əməliyyatlar üçün Activity konteksti, xüsusi ekranla əlaqəli olmayan tapşırıqlar üçün isə Application konteksti istifadə olunur.