در مورد contaxt

پرسیده شده
فعالیت 1289 روز پیش
دیده شده 632 بار
0

سلام خسته نباشید.

استاد ببخشید یه سوال داشتم اونم این بود که من از اول این دوره مفهوم contaxt رو ندونستم و اصلا نمی دونم چی هست و کارش دقیق چی هستش و همچنین در کجا و با چه روشی باید صداش بکنیم.

ممنون از راهنمایتون

فایل پیوست

رحیم محمودزاده
رحیم محمودزاده

7 شهریور 99

4
حذف شده

سلام رحیم جان 

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

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

Contextبه عنوان کلاس پایه(base class) برای Activity ها، سرویس ها(service) ، کل برنامه اندروید(Application) و … به کار رفته است.=> در واقع بخواهیم ساده تر به این موضوع نگاه کنیم این چیزایی که ذکر شده از Context ارث بری یعنی extends کردن تا مثلا یه اکتیویتی شکل گرفته.

تا اینجا مفهوم کانتکست رو بررسی کردیم .

اما من مثالی از یه سایت دیگه واستون میاورم که Context رو توضیح داده باشه (مثال خودمونی)

فرض کنید یک شرکت چند مهندس دارد یکی لر یکی کرد یکی ترک و یکی عرب و دیگری بلوچ. اینجا یک مسئول تدارکات داریم که وظیفه اش این است که هر چیزی که مهندس ها برای انجام کارشان نیاز دارند را برایشان فراهم کند و البته به هر زبانی هم آشنایی داره و میتونه هم ترکی صحبت کنه هم کردی هم لری و…

مهندس ها با مسئول تدارکات ارتباط برقرار میکنند اما زبان هم را نمیفهمند اینجا مسئول تدارکات این گروه را بهم مرتبط میکند. مهندس ها بخش های مختلف اپلیکیشن شما هستند . وقتی اکتیویتی شما بخواد از یه کلاس دیگه بخواهد که دیتابیس را برایش باز کند و اطلاعاتی را بدهد دیتابیس ازش در خواست میکند که پیغامش را از طریق(در واقع همراه با ) context بفرستد تا متوجه بشود پیام از کجا آمده و بتواند با کمک ان کارش را انجام بدهد.

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

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

7 شهریور 99

2
حذف شده

context خودش یک کلاس abstrac است. و این کلاس رو هم خود سیستم اندروید اجرا میکنه. کارش چیه:

امکان دسترسی به resourceهای مخصوص اپلیکیشن ، امکان تماسهای(یا همون call کردن) بیشتر  برای عملیات در سطح برنامه ؛ مثل چی؟ راه اندازی یک activity یا پخش و دریافت intentها و ... رو فراهم میکنه.

توی مورد آموزشی ما هم این فعالیت در سطح برنامه انجام میشه : یعنی یک دیالوگ توی یک activity قراره به نمایش دربیاد. فراهم کردن چنین فعالیتی توی سطح برنامه اپلیکیشن با contex است. یعنی به نوعی چنین فعالیتهایی باید با context به اطلاع هم برسن.

ما تو مثالمون view مربوط به dialog رو به context ربطش دادیم، ولی interfaceمون چی؟

حالا اینجا میره تو polymorpism که MainActivity از interface ارث بری کرده و می تونیم بگیم پدر کو ندارد نشان از پسر D; : که درواقع  evenListener = (DialogEventListener) context

اینه که کانتکست ما همون اینترفیسمون است ،

 اونور activity خودش کانتکس داره دیگه(قبلا گفته شده) ، اما اینترفیس مارو هم ارث بری کرده ، پس با cast کردن یجورایی میشه گفت کانتکسو با اینترفیس تعاملشو برقرار کردیم تا در سطح برناممون کارایی که از اینترفیس برمیادو برامون توی MainActivity فراهم کنه و حتی  بعدا تو جاهای دیگه هم میشه ازش استفاده کرد.

فایل پیوست

ali asadollahi

توسط

ali asadollahi

14 آبان 99