sasanraf

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

5 ارسال در این موضوع قرار دارد

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

موفق باشید

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری