context چیست و چه نقشی در برنامه دارد؟

ما میتوانیم با فرا خوانی getApplicationContext(), getContext() , getBaseContext() یا استفاده ازthis کلاس خود را از context گسترش دهیم و در بخش های مختلفی همانند Application, Activity, Service وIntentService classes از آن استفاده کنیم . در نهایت این می شود ساده ترین تعریف از context اما ما در زیر به تفسیر context را توضیح می دهیم .

 

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 یک ابزار برای معرفی و هندل کردن دیتا می باشد.

به بیان ساده تر:

کانتکست مثل ریموت کنترل تلوزیون شماست و تمام کانال های تلوزیون بعنوان ریسورس ها را در اختیار دارد.

یک نمونه ساده از استفاده ازcontext

اگر بخواهیم یک مثال ساده ازcontext بنویسیم می توانیم به ایجاد یک Toast با استفاده ازcontext بپردازیم.
Toast.makeText(context,”your massege”,Toast. LENGTH_LONG).show();

ولی بیشترین کاربرد context در بخش serviceهاست که در آن جا ما دیگرthis و متد های این چنینی نداریم وفقط باید ازContext استفاده کنیم. در انتها، شاید بد نباشد که کدهای کلاسContext را ببینید این بخش به بخش جاوا مرتبط است و کاربر نباید آن را ویرایش کند اگر می خواهید خودتان در اندروید استدیو به آن کلاس بروید با نگه داشتنCTRL رویContext کلیک کنید . در آینده به استفاده صحیح از context می پردازیم زیرا استفاده نادرست ازContext سبب memory leak (حدر رفتن حافظه ) می شود در کل سبب کندی اپلیکیشن شما در گوشی کاربر می شود.

 

امیدوارم از این مقاله استفاده کرده باشید.

www.nikandroid.com

 

آموزش های پیشنهادی برای این مقاله:

فصل اول آموزش برنامه نویسی در محیط اندروید استدیو

بارگذاری بیشتر مطالب مرتبط
بارگذاری توسط مدیر نوشادی

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.

12 − 2 =