getApplicationContext (), getBaseContext (), getApplication (), getParent ()

Jawaban:

33

getApplicationContext() Konteks Aplikasi dikaitkan dengan Aplikasi dan akan selalu sama sepanjang siklus hidup.

getBasecontext()sebaiknya tidak digunakan, cukup gunakan Contextyang terkait dengan aktivitas dan bisa dimusnahkan saat aktivitas dimusnahkan.

Harinder
sumber
16
bagaimana dengan getApplication () dan getParent ()
Nikunj Patel
107

getApplicationContext () Konteks aplikasi dikaitkan dengan Applicaition dan akan selalu sama sepanjang siklus hidup.

getBasecontext () tidak boleh digunakan, cukup gunakan Context sebagai ganti yang terkait dengan aktivitas dan mungkin bisa dimusnahkan saat aktivitas dimusnahkan.

getApplication () hanya tersedia untuk Aktivitas dan Layanan. Meskipun dalam implementasi Aktivitas dan Layanan Android saat ini, getApplication () dan getApplicationContext () menampilkan objek yang sama, tidak ada jaminan bahwa hal ini akan selalu terjadi (misalnya, dalam implementasi vendor tertentu). Jadi jika Anda menginginkan kelas Aplikasi yang Anda daftarkan di Manifest, Anda tidak boleh memanggil getApplicationContext () dan mentransmisikannya ke aplikasi Anda, karena itu mungkin bukan instance aplikasi (yang jelas Anda alami dengan kerangka pengujian).

getParent () mengembalikan objek aktivitas jika tampilan saat ini adalah anak .. Dengan kata lain, mengembalikan objek aktivitas yang menghosting tampilan anak saat dipanggil di dalam anak.

Ravi
sumber
16
Seperti yang telah Anda sebutkan, kita tidak boleh menggunakan getBaseContext (), jika tidak terlalu penting, mengapa itu dalam pengkodean dan apa keuntungan utamanya. tolong jelaskan saya tentang itu
Pir Fahim Shah
getBaseContext () harus digunakan dalam situasi yang sangat spesifik. Ada penjelasan yang sangat bagus di sini - medium.com/@ali.muzaffar/…
lomza