Dalam pemrograman Android, apa sebenarnya Context
kelas dan untuk apa kelas itu digunakan?
Saya membacanya di situs pengembang , tetapi saya tidak dapat memahaminya dengan jelas.
android
android-context
Brigadir
sumber
sumber
Jawaban:
Sederhananya:
Seperti namanya, itu adalah konteks keadaan aplikasi / objek saat ini. Ini memungkinkan objek yang baru dibuat memahami apa yang sedang terjadi. Biasanya Anda memanggilnya untuk mendapatkan informasi mengenai bagian lain dari program Anda (aktivitas dan paket / aplikasi).
Anda bisa mendapatkan konteks dengan menerapkan
getApplicationContext()
,getContext()
,getBaseContext()
atauthis
(ketika di kelas yang memanjang dariContext
, seperti Application, Activity, Service dan IntentService kelas).Penggunaan konteks yang umum:
Membuat objek baru : Membuat tampilan, adaptor, pendengar baru:
Mengakses sumber daya umum standar : Layanan seperti LAYOUT_INFLATER_SERVICE, SharedPreferences:
Mengakses komponen secara implisit : Mengenai penyedia konten, siaran, maksud
sumber
context.getSystemService(LAYOUT_INFLATER_SERVICE)
, di mana dan bagaimanacontext
didefinisikan?Definisi Konteks
Istilah yang lebih sederhana (contoh 1)
Pertimbangkan Person-X adalah CEO dari perusahaan perangkat lunak pemula.
Ada arsitek utama yang hadir di perusahaan, arsitek utama ini melakukan semua pekerjaan di perusahaan yang melibatkan seperti database, UI dll.
Sekarang CEO Menyewa Pengembang baru.
Arsiteklah yang memberi tahu tanggung jawab orang yang baru direkrut berdasarkan keterampilan orang baru tersebut apakah ia akan bekerja pada Database atau UI, dll.
Istilah yang lebih sederhana (contoh 2)
Ini seperti akses aktivitas android ke sumber daya aplikasi.
Ini mirip dengan ketika Anda mengunjungi hotel, Anda ingin sarapan, makan siang & makan malam di waktu yang tepat, bukan?
Ada banyak hal lain yang Anda sukai saat menginap. Bagaimana Anda mendapatkan barang-barang ini?
Anda meminta orang layanan kamar untuk membawa barang-barang ini untuk Anda.
Di sini orang-layanan kamar adalah konteks mengingat Anda adalah satu-satunya kegiatan dan hotel menjadi aplikasi Anda, akhirnya sarapan, makan siang & makan malam harus menjadi sumber daya.
Hal-hal yang melibatkan konteks adalah:
Konteks adalah kelas dasar untuk Aktivitas , Layanan , Aplikasi , dll
Cara lain untuk menggambarkan ini: Pertimbangkan konteks sebagai remote dari TV & saluran di televisi adalah sumber daya, layanan, menggunakan maksud dll - - - Di sini remote bertindak sebagai akses untuk mendapatkan akses ke semua sumber daya yang berbeda ke latar depan.
Jadi, Remote memiliki akses ke saluran seperti sumber daya, layanan, menggunakan maksud dll ....
Demikian juga ... Siapa pun yang memiliki akses ke remote secara alami memiliki akses ke semua hal seperti sumber daya, layanan, menggunakan maksud, dll
Berbagai metode yang Anda gunakan untuk mendapatkan konteks
getApplicationContext()
getContext()
getBaseContext()
this
(ketika di kelas aktivitas)Contoh:
Kata kunci
this
mengacu pada konteks aktivitas saat ini.sumber
getApplicationContext()
,getContext()
,getBaseContext()
..... Lihat ini -> ( stackoverflow.com/a/10641257 )SomeActivityName.this
. DALAM utas untuk contoh,this
merujuk pada utas dan bukan aktivitasSumber
Topik Konteks dalam Android tampaknya membingungkan banyak orang. Orang-orang hanya tahu bahwa Konteks diperlukan cukup sering untuk melakukan hal-hal dasar di Android. Orang terkadang panik karena mereka mencoba melakukan beberapa operasi yang memerlukan Konteks dan mereka tidak tahu bagaimana "mendapatkan" Konteks yang tepat. Saya akan mencoba untuk menghilangkan mitos ide Konteks di Android. Perlakuan penuh atas masalah ini berada di luar cakupan pos ini, tetapi saya akan mencoba memberikan tinjauan umum sehingga Anda dapat memahami apa itu Konteks dan bagaimana menggunakannya. Untuk memahami apa itu Konteks, mari kita lihat kode sumbernya:
https://github.com/android/platform_frameworks_base/blob/master/core/java/android/content/Context.java
Apa sebenarnya Konteks itu?
Yah, dokumentasi itu sendiri memberikan penjelasan yang cukup mudah: Kelas konteks adalah "Antarmuka ke informasi global tentang lingkungan aplikasi".
Kelas konteks itu sendiri dinyatakan sebagai kelas abstrak, yang implementasinya disediakan oleh OS Android. Dokumentasi lebih lanjut menyatakan bahwa Konteks "... memungkinkan akses ke sumber daya dan kelas khusus aplikasi, serta panggilan untuk operasi tingkat aplikasi seperti meluncurkan aktivitas, menyiarkan dan menerima maksud, dll".
Anda bisa mengerti dengan baik, sekarang, mengapa namanya Context. Itu hanya karena itu. Konteks menyediakan tautan atau pengait, jika Anda mau, untuk suatu Kegiatan, Layanan, atau komponen lain apa pun, dengan demikian menautkannya ke sistem, memungkinkan akses ke lingkungan aplikasi global. Dengan kata lain: Konteks memberikan jawaban untuk pertanyaan komponen "di mana saya dalam kaitannya dengan aplikasi secara umum dan bagaimana cara mengakses / berkomunikasi dengan aplikasi lainnya?" Jika ini semua tampak agak membingungkan, pandangan cepat pada metode yang diekspos oleh kelas Konteks memberikan beberapa petunjuk lebih lanjut tentang sifat aslinya.
Berikut ini adalah contoh acak dari metode-metode tersebut:
getAssets()
getResources()
getPackageManager()
getString()
getSharedPrefsFile()
Apa kesamaan semua metode ini? Mereka semua memungkinkan siapa pun yang memiliki akses ke Konteks untuk dapat mengakses sumber daya di seluruh aplikasi.
Konteks, dengan kata lain, mengaitkan komponen yang memiliki referensi untuk itu ke seluruh lingkungan aplikasi. Aset (pikirkan folder '/ aset' dalam proyek Anda), misalnya, tersedia di seluruh aplikasi, asalkan Kegiatan, Layanan atau apa pun yang tahu cara mengakses sumber daya tersebut. Hal yang sama berlaku untuk
getResources()
yang memungkinkan untuk melakukan hal-hal sepertigetResources().getColor()
yang akan menghubungkan Anda kecolors.xml
sumber daya (namun ingat bahwa aapt memungkinkan akses ke sumber daya melalui kode java, itu masalah terpisah).Hasilnya adalah bahwa
Context
adalah apa yang memungkinkan akses ke sumber daya sistem dan dengan apa yang kait komponen ke dalam “aplikasi yang lebih besar". Penampilan Mari di subclass dariContext
, kelas yang menyediakan implementasi abstrakContext
kelas. Kelas yang paling jelas adalahActivity
kelas.Activity
Mewarisi dariContextThemeWrapper
, yang mewarisi dariContextWrapper
, yang mewarisi dariContext
dirinya sendiri. Kelas-kelas itu berguna untuk melihat untuk memahami hal-hal di tingkat yang lebih dalam, tetapi untuk saat ini cukup untuk mengetahui ituContextThemeWrapper
danContextWrapper
cukup banyak seperti apa bunyinya. Mereka menerapkan elemen abstrak dariContext
kelas itu sendiri dengan "membungkus" konteks (konteks aktual) dan mendelegasikan fungsi-fungsi tersebut ke konteks itu.ContextWrapper
kelas, metode abstrakgetAssets
dariContext
kelas diimplementasikan sebagai berikut:mBase
hanyalah bidang yang ditetapkan oleh konstruktor ke konteks tertentu. Jadi konteks dibungkus danContextWrapper
delegasi penerapan metode getAssets ke konteks itu. Mari kita kembali memeriksaActivity
kelas yang akhirnya mewarisi dariContext
untuk melihat bagaimana semua ini bekerja.Anda mungkin tahu apa itu Kegiatan, tetapi untuk meninjau - itu pada dasarnya adalah satu hal yang dapat dilakukan pengguna. Ini mengurus penyediaan jendela di mana untuk menempatkan UI yang berinteraksi dengan pengguna '. Pengembang yang akrab dengan API lain dan bahkan non-pengembang mungkin menganggapnya secara verbal sebagai "layar." Secara teknis tidak akurat, tetapi itu tidak masalah untuk tujuan kita. Jadi bagaimana
Activity
danContext
berinteraksi dan apa yang sebenarnya terjadi dalam hubungan warisan mereka?Sekali lagi, sangat membantu untuk melihat contoh-contoh spesifik. Kita semua tahu cara meluncurkan Aktivitas. Asalkan Anda memiliki "konteks" dari mana Anda memulai Kegiatan, Anda cukup menelepon
startActivity(intent)
, di mana Intent menggambarkan konteks dari mana Anda memulai suatu Kegiatan dan Kegiatan yang ingin Anda mulai. Ini yang familierstartActivity(this, SomeOtherActivity.class)
.Dan apa itu
this
?this
adalah Aktivitas Anda karenaActivity
kelas diwarisi dariContext
. Scoop penuh adalah seperti ini: Ketika Anda meneleponstartActivity
, pada akhirnyaActivity
kelas mengeksekusi sesuatu seperti ini:Jadi ia memanfaatkan
execStartActivity
dariInstrumentation
kelas (sebenarnya dari kelas batin yangInstrumentation
disebutActivityResult
).Pada titik ini, kita mulai mengintip sistem internal.
Di sinilah sebenarnya OS menangani semuanya. Jadi bagaimana sebenarnya Instrumentasi memulai Kegiatan? Nah, param
this
dalamexecStartActivity
metode di atas adalah Aktivitas Anda, yaitu Konteks, danexecStartActivity
memanfaatkan konteks ini.30.000 ikhtisar adalah ini: kelas Instrumentasi melacak daftar Kegiatan yang dipantau untuk melakukan pekerjaannya. Daftar ini digunakan untuk mengoordinasikan semua kegiatan dan memastikan semuanya berjalan lancar dalam mengelola aliran kegiatan.
Ada beberapa operasi yang belum sepenuhnya saya perhatikan yang mengoordinasikan utas dan masalah proses. Pada akhirnya,
ActivityResult
menggunakan operasi asli -ActivityManagerNative.getDefault().startActivity()
yang menggunakanContext
yang Anda lewati ketika Anda meneleponstartActivity
. Konteks yang Anda berikan digunakan untuk membantu dalam "resolusi maksud" jika diperlukan. Resolusi niat adalah proses dimana sistem dapat menentukan target niat jika tidak disediakan. (Lihat panduan di sini untuk detail lebih lanjut).Dan agar Android dapat melakukan ini, diperlukan akses ke informasi yang disediakan oleh
Context
. Secara khusus, sistem perlu mengakses keContentResolver
sehingga dapat "menentukan tipe MIME dari data maksud". Keseluruhan ini tentang bagaimanastartActivity
menggunakan konteks agak rumit dan saya tidak sepenuhnya memahami internal sendiri. Poin utama saya hanya untuk menggambarkan bagaimana sumber daya aplikasi-lebar perlu diakses untuk melakukan banyak operasi yang penting untuk aplikasi.Context
adalah apa yang menyediakan akses ke sumber daya ini. Contoh yang lebih sederhana mungkin adalah Tampilan. Kita semua tahu apa yang Anda buat Tampilan kustom dengan memperluasRelativeLayout
atauView
kelas lain , Anda harus menyediakan konstruktor yang membutuhkan aContext
sebagai argumen. Ketika Anda membuat Instantiate Lihat kustom Anda lulus dalam konteks. Mengapa? Karena Tampilan harus dapat memiliki akses ke tema, sumber daya, dan detail konfigurasi Tampilan lainnya. Konfigurasi tampilan sebenarnya adalah contoh yang bagus. Setiap Konteks memiliki berbagai parameter (bidang dalamContext
implementasi) yang diatur oleh OS itu sendiri untuk hal-hal seperti dimensi atau kepadatan tampilan. Sangat mudah untuk melihat mengapa informasi ini penting untuk mengatur Tampilan, dll.Satu kata terakhir: Untuk beberapa alasan orang yang baru mengenal Android (dan bahkan orang yang tidak begitu baru) tampaknya sepenuhnya melupakan pemrograman berorientasi objek ketika datang ke Android. Untuk beberapa alasan, orang mencoba untuk membengkokkan pengembangan Android mereka ke paradigma yang telah dipahami sebelumnya atau perilaku belajar.
Android memiliki paradigma sendiri dan pola tertentu yang sebenarnya cukup konsisten jika melepaskan konsep yang sudah Anda bayangkan sebelumnya dan cukup membaca dokumentasi dan panduan pengembang. Namun, poin saya yang sebenarnya, ketika “mendapatkan konteks yang tepat” kadang-kadang bisa rumit, orang-orang panik dengan tidak adil karena mereka mengalami situasi di mana mereka membutuhkan konteks dan berpikir mereka tidak memilikinya. Sekali lagi, Java adalah bahasa berorientasi objek dengan desain warisan.
Anda hanya "memiliki" konteks di dalam Aktivitas Anda karena aktivitas Anda sendiri diwarisi dari Konteks. Tidak ada keajaiban untuk itu (kecuali untuk semua hal yang dilakukan OS dengan sendirinya untuk mengatur berbagai parameter dan untuk "mengkonfigurasi" konteks Anda dengan benar). Jadi, mengesampingkan masalah memori / kinerja (misalnya menyimpan referensi ke konteks ketika Anda tidak perlu atau melakukannya dengan cara yang memiliki konsekuensi negatif pada memori, dll), Konteks adalah objek seperti yang lain dan dapat diedarkan di sekitar sama seperti POJO (Obyek Jawa Kuno Biasa). Kadang-kadang Anda mungkin perlu melakukan hal-hal pintar untuk mengambil konteks itu, tetapi setiap kelas Java reguler yang memanjang dari tidak lain dari Object itu sendiri dapat ditulis dengan cara yang memiliki akses ke konteks; cukup memaparkan metode publik yang mengambil konteks dan kemudian menggunakannya di kelas itu sesuai kebutuhan.
sumber
Konteks adalah pegangan untuk sistem; ini menyediakan layanan seperti menyelesaikan sumber daya, mendapatkan akses ke database dan preferensi, dan sebagainya. Aplikasi Android memiliki aktivitas. Konteks seperti pegangan ke lingkungan aplikasi Anda sedang berjalan masuk. Objek aktivitas mewarisi objek Konteks.
Untuk informasi lebih lanjut, lihat di Pengantar pengembangan Android dengan Android Studio - Tutorial .
sumber
Context
adalah "antarmuka" ke informasi global tentang lingkungan aplikasi. Dalam praktiknya,Context
sebenarnya adalah kelas abstrak , yang implementasinya disediakan oleh sistem Android.Ini memungkinkan akses ke sumber daya dan kelas khusus aplikasi, serta panggilan untuk operasi tingkat aplikasi, seperti meluncurkan aktivitas, menyiarkan dan menerima maksud, dll.
Pada gambar berikut, Anda dapat melihat hierarki kelas, di mana
Context
kelas akar hierarki ini. Secara khusus, ada baiknya menekankan bahwa ituActivity
adalah keturunanContext
.sumber
Apa
Context
sebenarnyaDari buku " Android in Practice ", hal. 60.
Beberapa API Android memerlukan
Context
parameter sebagaiJika Anda melihat melalui berbagai API Android, Anda akan melihat bahwa banyak dari mereka mengambil
android.content.Context
objek sebagai parameter. Anda juga akan melihat bahwa suatu Kegiatan atau Layanan biasanya digunakan sebagai aContext
. Ini berfungsi karena kedua kelas ini diperluas dariContext
.sumber
Contoh sederhana untuk dipahami
context
di android:Setiap bos memiliki asisten untuk dijaga, untuk melakukan semua tugas yang kurang penting dan memakan waktu. Jika file atau secangkir kopi diperlukan, asisten sedang dalam perjalanan. Beberapa bos nyaris tidak tahu apa yang sedang terjadi di kantor, jadi mereka bertanya kepada asisten mereka mengenai hal ini juga. Mereka melakukan beberapa pekerjaan sendiri tetapi untuk sebagian besar hal lain mereka membutuhkan bantuan asisten mereka.
Dalam skenario ini,
Boss - adalah aplikasi Android
Asisten - adalah konteks
File / secangkir kopi - adalah sumber daya
Kami umumnya memanggil konteks ketika kami perlu mendapatkan informasi tentang berbagai bagian dari aplikasi kami seperti Kegiatan, Aplikasi dll.
Beberapa operasi (hal-hal di mana asisten diperlukan) di mana konteks terlibat:
Berbagai cara mendapatkan konteks:
sumber
Konteks Android adalah Antarmuka (dalam arti umum, bukan dalam arti Java; di Jawa,
Context
sebenarnya adalah kelas abstrak!) Yang memungkinkan akses ke sumber daya aplikasi spesifik dan kelas serta informasi tentang lingkungan aplikasi.Jika aplikasi Android Anda adalah aplikasi web, konteks Anda akan mirip
ServletContext
(saya tidak membuat perbandingan yang tepat di sini).Aktivitas dan layanan Anda juga diperluas
Context
, sehingga mereka mewarisi semua metode tersebut untuk mengakses informasi lingkungan tempat aplikasi berjalan.sumber
Context
merupakan pegangan untuk mendapatkan data lingkungan.Context
kelas itu sendiri dinyatakan sebagai abstrak, yang implementasinya disediakan oleh OS android.Context
seperti remote TV & saluran di televisi adalah sumber daya, layanan, dll.Apa yang bisa kamu lakukan dengan itu?
Cara mendapatkan konteks:
getApplicationContext()
getContext()
getBaseContext()
sumber
Hanya menaruhnya di sana untuk pemula;
Jadi Pertama mengerti Konteks Kata:
Dalam bahasa Inggris-lib. itu berarti:
Sekarang ambil pemahaman yang sama untuk dunia pemrograman:
konteks keadaan aplikasi / objek saat ini. Ini memungkinkan objek yang baru dibuat memahami apa yang sedang terjadi. Biasanya Anda memanggilnya untuk mendapatkan informasi mengenai bagian lain dari program Anda (aktivitas, paket / aplikasi)
Anda bisa mendapatkan konteks dengan memohon
getApplicationContext()
,getContext(), getBaseContext()
atauthis
(ketika di kelas aktivitas).Untuk Mendapatkan Konteks Di Mana Saja dalam aplikasi, gunakan kode berikut:
Buat kelas baru
AppContext
di dalam aplikasi android AndaSekarang kapan pun Anda menginginkan konteks aplikasi di kelas non-aktivitas, panggil metode ini dan Anda memiliki konteks aplikasi.
Semoga bantuan ini;)
sumber
Anggap saja sebagai VM yang telah menghentikan proses aplikasi atau layanan berjalan. Lingkungan yang sunyi memiliki akses ke banyak informasi sistem yang mendasarinya dan sumber daya tertentu yang diizinkan. Anda membutuhkan konteks itu untuk mendapatkan layanan tersebut.
sumber
Konteks adalah referensi ke objek saat ini. Konteks juga memungkinkan akses ke informasi tentang lingkungan aplikasi.
sumber
Kelas
android.content.Context
menyediakan koneksi ke sistem Android dan sumber daya proyek. Ini adalah antarmuka ke informasi global tentang lingkungan aplikasi.Konteks juga menyediakan akses ke Layanan Android, misalnya Layanan Lokasi.
Kegiatan dan Layanan memperluas
Context
kelas.sumber
Konteks adalah instance dari kelas android.content.Context menyediakan koneksi ke sistem Android yang menjalankan aplikasi. Misalnya, Anda dapat memeriksa ukuran tampilan perangkat saat ini melalui Konteks.
Ini juga memberikan akses ke sumber daya proyek. Ini adalah antarmuka ke informasi global tentang lingkungan aplikasi.
Kelas konteks juga menyediakan akses ke layanan Android, misalnya, manajer alarm untuk memicu peristiwa berbasis waktu.
Kegiatan dan layanan memperluas kelas Konteks. Oleh karena itu mereka dapat langsung digunakan untuk mengakses Konteks.
sumber
Konteks adalah antarmuka ke informasi global tentang lingkungan aplikasi. Ini adalah kelas abstrak yang implementasinya disediakan oleh
Android
sistem.Context
memungkinkan akses ke sumber daya dan kelas khusus aplikasi, serta panggilan untuk operasi tingkat aplikasi sepertilaunching activities, broadcasting and receiving intents, etc.
Ini contohnya
Untuk perincian lebih lanjut, Anda dapat mengunjungi http://developer.android.com/reference/android/content/Context.html
sumber
Konteks pada dasarnya untuk akses sumber daya dan mendapatkan rincian lingkungan aplikasi (untuk konteks aplikasi) atau aktivitas (untuk konteks aktivitas) atau ...
Untuk menghindari kebocoran memori Anda harus menggunakan konteks aplikasi untuk setiap komponen yang memerlukan objek konteks .... untuk lebih lanjut klik di sini
sumber
Konteks adalah konteks keadaan aplikasi / objek saat ini. Merupakan entitas yang mewakili berbagai data lingkungan. Konteks membantu aktivitas saat ini untuk berinteraksi dengan lingkungan luar Android seperti file lokal, database, pemuat kelas yang terkait dengan lingkungan, layanan termasuk layanan tingkat sistem, dan banyak lagi.
Konteks adalah pegangan untuk sistem. Ini menyediakan layanan seperti menyelesaikan sumber daya, mendapatkan akses ke database dan preferensi, dan sebagainya. Aplikasi android memiliki aktivitas. Ini seperti pegangan ke lingkungan aplikasi Anda saat ini berjalan masuk. Objek aktivitas mewarisi objek Konteks.
Metode pemanggilan berbeda yang Anda gunakan untuk mendapatkan konteks 1. getApplicationContext (), 2. getContext (), 3. getBaseContext () 4. atau ini (ketika di kelas aktivitas).
sumber
Konteks berarti Android mengetahui aktivitas apa yang harus saya ikuti atau lakukan.
1 -
Toast.makeText(context, "Enter All Details", Toast.LENGTH_SHORT).show();
ini digunakan dalam hal ini.Context context = ActivityName.this;
2 -
startActivity(new Intent(context,LoginActivity.class));
dalam konteks ini berarti dari aktivitas mana Anda ingin pergi ke aktivitas lain. konteks atau ActivityName.ini lebih cepat, getContext dan getApplicatinContext.
sumber
A
Context
adalah apa yang kebanyakan dari kita sebut Aplikasi . Itu dibuat oleh sistem Android dan hanya mampu melakukan apa yang bisa dilakukan oleh aplikasi. Di Tomcat, sebuah Konteks juga disebut sebagai aplikasi.Ada satu Konteks yang menampung banyak Kegiatan, setiap Kegiatan mungkin memiliki banyak Tampilan.
Jelas, beberapa orang akan mengatakan bahwa itu tidak cocok karena ini atau itu dan mereka mungkin benar, tetapi mengatakan bahwa Konteks adalah aplikasi Anda saat ini akan membantu Anda untuk memahami apa yang Anda masukkan dalam parameter metode.
sumber
Analogi Asisten Bos
Mari kita memiliki analogi kecil sebelum menyelam jauh dalam teknis dari Konteks
Apa yang dikatakan situs Pengembang Android resmi tentang Konteks
Konteks adalah titik akses Anda untuk sumber daya terkait aplikasi
Mari kita lihat beberapa sumber daya atau tugas seperti itu
Meluncurkan suatu kegiatan.
Mendapatkan path absolut ke direktori cache spesifik aplikasi pada sistem file.
Menentukan apakah izin yang diberikan diizinkan untuk proses tertentu dan ID pengguna yang berjalan di sistem.
Memeriksa apakah Anda telah diberikan izin tertentu.
Dan seterusnya.
Jadi, jika aplikasi Android ingin memulai suatu kegiatan, langsung ke
Context
(Access Point), danContext
kelas memberinya kembali sumber daya (Maksud dalam hal ini).Seperti kelas lainnya,
Context
kelas juga memiliki bidang dan metode.Anda dapat menjelajahi lebih
Context
dalam tentang dokumentasi resmi, mencakup hampir semua, metode yang tersedia, bidang, dan bahkan cara menggunakan bidang dengan metode.sumber
Contoh dari kelas android.content.Context menyediakan koneksi ke sistem Android yang menjalankan aplikasi. Misalnya, Anda dapat memeriksa ukuran tampilan perangkat saat ini melalui Konteks.
Ini juga memberikan akses ke sumber daya proyek. Ini adalah antarmuka ke informasi global tentang lingkungan aplikasi.
Kelas konteks juga menyediakan akses ke layanan Android, misalnya, manajer alarm untuk memicu peristiwa berbasis waktu.
Kegiatan dan layanan memperluas kelas Konteks. Oleh karena itu mereka dapat langsung digunakan untuk mengakses Konteks.
sumber
Jika Anda ingin menghubungkan Context dengan kelas-kelas lain yang akrab di Android, perhatikan struktur ini:
Jadi, semua kelas itu adalah konteks dengan caranya sendiri. Anda dapat memberikan Layanan dan ListActivity ke Konteks jika Anda mau. Tetapi jika Anda melihat lebih dekat, beberapa kelas mewarisi tema juga. Dalam aktivitas atau fragmen, Anda ingin mereka diterapkan untuk pandangan Anda, tetapi tidak peduli tentang hal itu Kelas layanan , misalnya.
Saya menjelaskan perbedaan konteks di sini .
sumber
Sederhananya, Android
Context
adalah kekacauan yang tidak akan Anda sukai sampai Anda berhenti mengkhawatirkan.Android
Context
adalah:Benda-benda dewa.
Hal yang ingin Anda sampaikan semua aplikasi Anda ketika Anda mulai mengembangkan untuk Android, tetapi akan menghindari melakukannya ketika Anda mendapatkan sedikit lebih dekat dengan pemrograman, pengujian dan Android itu sendiri.
Ketergantungan yang tidak jelas.
Sumber umum kebocoran memori.
PITA untuk pengujian.
Konteks aktual yang digunakan oleh sistem Android untuk mengirimkan izin, sumber daya, preferensi, layanan, siaran, gaya, menampilkan dialog dan menggembungkan tata letak. Dan Anda memerlukan
Context
contoh berbeda untuk beberapa hal terpisah (jelas, Anda tidak dapat menampilkan dialog dari konteks aplikasi atau layanan; tata letak yang meningkat dari konteks aplikasi dan aktivitas mungkin berbeda).sumber
Konteks adalah api khusus android untuk setiap Sandbox aplikasi aplikasi yang menyediakan akses data pribadi aplikasi seperti ke sumber daya, database, direktori arsip pribadi, preferensi, pengaturan ...
Sebagian besar privatedata adalah sama untuk semua kegiatan / layanan / penyiar siaran dari satu aplikasi.
Karena Aplikasi, Aktivitas, Layanan mengimplementasikan antarmuka Konteks, mereka dapat digunakan di mana panggilan api memerlukan parameter Konteks
sumber
Context
berarti komponen (atau aplikasi) dalam berbagai periode waktu. Jika saya memakan begitu banyak makanan antara 1 hingga 2 siang, maka konteks saya pada waktu itu digunakan untuk mengakses semua metode (atau sumber daya) yang saya gunakan selama waktu itu. Konten adalah komponen (aplikasi) untuk waktu tertentu.Context
komponen aplikasi terus berubah berdasarkan siklus hidup komponen atau aplikasi yang mendasarinya. Misalnya, di dalam onCreate () dari sebuahActivity
,getBaseContext()
- memberikancontext
dariActivity
yang ditetapkan (dibuat) oleh konstruktor aktivitas.getApplicationContext()
- memberikanContext
pengaturan (dibuat) selama pembuatan aplikasi.Catatan:
<application>
memegang semua Komponen Android.Artinya, ketika Anda menelepon
getApplicationContext()
dari dalam komponen apa pun, Anda memanggil konteks umum dari seluruh aplikasi.Context
terus dimodifikasi oleh sistem berdasarkan siklus hidup komponen.sumber
Pikirkan Konteks sebagai kotak dengan sumber berbeda: string, warna, dan font. Jika Anda membutuhkan sumber daya, Anda membuka kotak ini. Ketika Anda memutar layar, kotak ini berubah karena orientasi berubah menjadi lanskap.
sumber
Context
berarti arus.Context
gunakan untuk melakukan operasi untuk layar saat ini. ex.1. getApplicationContext ()
2. getContext ()
sumber
Penjelasan hebat! Untuk melengkapi semua hal di atas, saya menemukan ini dari MindOrks sangat membantu, bahkan menunjukkan beberapa kasus penggunaan dasar untuk membuat pikiran Anda:
Memahami Konteks Dalam Aplikasi Android
sumber
Di Jawa, kami mengatakan kata kunci ini merujuk pada keadaan objek aplikasi saat ini.
Demikian pula, dalam alternatif yang kita miliki
Context
dalam Pengembangan Android.Ini dapat didefinisikan secara eksplisit atau implisit,
sumber
this
hanya berfungsi dalam aktivitas. Konteks bukan alternatif untuk "ini" - konteks digunakan untuk mengakses fitur sistem, dan banyak lagi. Anda terlalu menyederhanakan Konteks dan kehilangan poin utama dengannya.Atribut ini menyatakan kegiatan yang tata letak ini dikaitkan dengan secara default .
sumber