رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مفهوم و موارد استفاده Context در اندروید


پست های پیشنهاد شده

لطفا مفهوم و موارد استفاده از Context را توضیح دهید.

کدهای زیر مربوط به چک کردن اتصال دستگاه به اینترنت می شود. 

[shcode=java]

Context context = this;

ConnectivityManager conMng = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = conMng.getActiveNetworkInfo();

[/shcode]

لطفا علت استفاده از context را در کدهای بالا توضیح دهید زیرا همان کدها را بدون استفاده از Context نیز می توان نوشت و به همان نتیجه رسید.

[shcode=java]

ConnectivityManager conMng = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = conMng.getActiveNetworkInfo();

[/shcode]

در ضمن چرا در خط NetworkInfo networkInfo = conMng.getActiveNetworkInfo ، کست (cast) ، انجام نشده؟

از کمک شما تشکر می کنم،

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Context به عنوان کلاس پایه (base class) برای Activity ها، سرویس ها (service)، کل برنامه اندروید (Application) و ... به کار رفته است. در واقع آنها از گسترش (extend) کلاس Context به وجود آمده اند و بنابراین در برخی مواقع که در حال کدنویسی برای بخش های مختلف برنامه اندروید هستیم، باید به context مربوط به آنها رجوع کنیم. مثلا در هنگام کدنویسی در یک Activity ، ممکن است که برای یک سری کد، نیاز به context مربوط به خود Activity داشته باشیم و برای یک سری کد دیگر، نیاز به context مربوط به کل برنامه اندروید (Application) باشد. بنابراین رجوع به context مربوط به آنها، برای برخی کدها، ضروری است.

context مربوط به هر کدام از مواردی که ذکر کردیم، اطلاعات محیطی (environment data) مربوط به آنها را ارائه می کند. Context به ما کمک می کند که به منابع (resources) و کلاس ها (classes) و برخی موارد دیگر از آنها، دسترسی پیدا کنیم.

شاید با یک مثال ساده، بتوان مفهوم context را بیان کرد. فرض کنید که شما در یک شهر، غریب هستید و هیچ کجا را نمی شناسید. یک راهنما در کنار شما هست که هر وقت که گیج شدید، از او می پرسید که من کجا هستم و وی با باز کردن یک نقشه، محل شما را می گوید و همچنین می گوید که چگونه می توانید به نقاط مختلف شهر (مثل هتل ها، رستوران ها و ...) بروید. context نیز نقشی مشابه آن راهنما را برای ما دارد که در بخش های مختلف برنامه اندروید، با مراجعه به Context مربوط به آن، context ما را راهنمایی می کند که چگونه به منابع (resources) و کلاس های (classes) مورد نظرمان (از این بخش و یا از سایر بخش های برنامه اندروید)، دسترسی پیدا کنیم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

Context به عنوان کلاس پایه (base class) برای Activity ها، سرویس ها (service)، کل برنامه اندروید (Application) و ... به کار رفته است. در واقع آنها از گسترش (extend) کلاس Context به وجود آمده اند و بنابراین در برخی مواقع که در حال کدنویسی برای بخش های مختلف برنامه اندروید هستیم، باید به context مربوط به آنها رجوع کنیم. مثلا در هنگام کدنویسی در یک Activity ، ممکن است که برای یک سری کد، نیاز به context مربوط به خود Activity داشته باشیم و برای یک سری کد دیگر، نیاز به context مربوط به کل برنامه اندروید (Application) باشد. بنابراین رجوع به context مربوط به آنها، برای برخی کدها، ضروری است.

context مربوط به هر کدام از مواردی که ذکر کردیم، اطلاعات محیطی (environment data) مربوط به آنها را ارائه می کند. Context به ما کمک می کند که به منابع (resources) و کلاس ها (classes) و برخی موارد دیگر از آنها، دسترسی پیدا کنیم.

شاید با یک مثال ساده، بتوان مفهوم context را بیان کرد. فرض کنید که شما در یک شهر، غریب هستید و هیچ کجا را نمی شناسید. یک راهنما در کنار شما هست که هر وقت که گیج شدید، از او می پرسید که من کجا هستم و وی با باز کردن یک نقشه، محل شما را می گوید و همچنین می گوید که چگونه می توانید به نقاط مختلف شهر (مثل هتل ها، رستوران ها و ...) بروید. context نیز نقشی مشابه آن راهنما را برای ما دارد که در بخش های مختلف برنامه اندروید، با مراجعه به Context مربوط به آن، context ما را راهنمایی می کند که چگونه به منابع (resources) و کلاس های (classes) مورد نظرمان (از این بخش و یا از سایر بخش های برنامه اندروید)، دسترسی پیدا کنیم.

با تشکر فراوان از پاسخ شما. 

از آنجا که هنوز در مرحله مقدماتی یادگیری برنامه نویسی اندروید هستم، پاسخ شما برایم مبهم می باشد. در صورت امکان، نیاز به توضیح کاربردی به همراه کدهای ساده دارم. مجددا تشکر می کنم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با استفاده از روش زیر، می توانیم Context مربوط به Application را به دست آوریم :

 [shcode=java]baseContext.getApplicationContext()[/shcode]

در کدهای بالا، به جای عبارت baseContext ، باید Context مربوط به آن Activity که در آن هستیم را بنویسیم (یا Context مربوط به موارد دیگر).

همچنین اگر بخواهیم Context مربوط به یک Activity را به دست آوریم، باید در میان کدهای آن Activity ، کد زیر را بنویسیم :

[shcode=java]getApplication()[/shcode]


context یک کلاس انتزاعیه که خود اندروید اونو پیاده سازی می کنه،مثلا اکتیویتی یک context هستش.ما از context برای استفاده از resource های برنامه و انجام عملیات های application-level استفاده می کنیم.مثلا اجرای یک اکتیویتی،سرویس،فرستادن یک broadcast و ... همه عملیات های application-level هستند.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

منظور از context یعنی همان اکتیویتی !! به عنوان مثال MainActivity.this یک کانتکست هم به حساب میاد !! که میتونید به این صورت بنویسید .

Context c=MainActivity.this

حال اگر کلاسهای مختلفی درست کنید !! به عنوان مثال Toast که خود یک کلاس به حساب می آید .

که در Toast هم شما اولین چیزی که وارد مینمایید context است .

بنابراین Toast میفهمه که داخل کانتکست یا اکتیویتی  که تعریف کرده اید اجرا بشه !! 

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...