جابه‌جایی بین اکتیویتی ها در اندروید چگونه انجام می‌گیرد؟ | نحوی کار با Intent ها در اندروید

Intent ها در اندروید یک مفهوم کلی می‌باشند. به طور کلی ما برای ایجاد ارتباط با انواع مختلف کامپوننت های یک Application و حتی Component ها نرم افزاری سایر اپلیکیشن‌ها ، از اینتنت ها در اندروید استفاده می‌کنیم. به مفهومی ساده ما به کمک Intent ها به OS (سیستم عامل)  اندروید اطلاع می‌دهیم که قصد انجام چه کاری را داریم .

اینتنت ها به طور کلی شامل چه مواردی می‌باشند.

  • نوع Intent: ما به کمک نوع اینتنت مشخص می کنیم که سیستم عامل دقیقا چه کاری را انجام دهد. به طور مثال اگر برنامه نویس قصد دارد یک اکتیویتی جدید را اجرا کند باید از نوع اینتنت Action_Main استفاده کنید.
  • کلاس مقصد: همانطور که از اسم آن مشخص است کلاسی منظورمان است که می‌خواهیم به آن جابه جا شویم
  • داده های Intent: زمانی که لازم است از اکتیویتی A به اکتیویتی B داده ای ارسال شود. مثلا یک سری نام و نام خانوادگی و … در صفحه ی ثبت نام از کاربر می‌گیریم و بعد از اتمام کار و در زمان جابه‌جایی به صفحه ی لاگین ، آنها را نیز ارسال می‌کنیم.

به طور کلی Intent ها در اندروید دونوع هستند:

  • Intent های صریح (Explicit Intents):  در این نوع اینتنت ما به طور مشخص می‌گویم که قصد داریم به یک اکتیویتی با نام B برویم .
Intent های صریح (Explicit Intents) دراندروید

Intent های صریح (Explicit Intents) دراندروید

به طور کلی مبدا و مقصد در این نوع Intent مشخص است . مانند کد زیر :

در  کد بالا ، this به Context فعلی اشاره می کند. MyActivity::class.java کلاس مقصد Intent را مشخص می کند.

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

  • Intent های ضمنی (Implicit Intents): اینتنت ضمنی یا Implicit Intent  برای مواقعی است که شما میخواهید یکسری کار های خاص را به سیستم عامل اندروید بگوید ولی لازم نیست که یک Activity خاص را تعیین کنید . به عنوان مثال شما به سیستم عامل اندروید اعلام می‌کنید که قصد دارید یک ایمیل را به اشتراک بگذارید همان طور که متوجه شدید ما در اعلان خودمون اسمی از اکتیویتی نبردیم . و در این بین وظیفه‌ی سیستم عامل این می‌باشد که تمامی برنامه هایی که می‌توانند درخواست ما را اجرا کنند برای ما به نمایش بگذارد.

کد بالا یک صفحه وب (سایت کدایت) را برای شما باز می‌کند .Intent.ACTION_VIEW  همان تمایل ما است که به سیستم عامل می‌فرستیم و از سیستم عامل می‌خواهیم که اکتیویتی برای ما بیاورد تا صفحه وب بالا را در آن بازکنیم.

موارد استفاده Intent های صریح در اندروید :

  • اجرا کردن یک اکتیویتی جدید
  • ارسال یک پیام به یک سرویس
  • اعلان یک رویداد

موارد استفاده Intent های ضمنی در اندروید :

  • باز کردن یک فایل
  • تماس با یک شماره تلفن
  • ارسال یک ایمیل

انواع اطلاعاتی که توسط اینتنت ها قابل ارسال است.

  • اطلاعات مربوط به کاربر: یکسری اطلاعات که برای کاربر میباشد و احتمالا شما نیاز دارید در صفحات دیگر از آن استفاده کنیدمانند نام شخص ، آدرس ایمیل و شماره تلفن و username , password
  • اطلاعات مربوط به محتوا: اطلاعاتی مانند متن، تصویر، صدا و ویدئو
  • اطلاعات مربوط به عمل: مانند نام عمل، پارامترهای عمل و نتایج عمل

به طور مثال فرض کنید شما می‌خواهید اسم کاربر را از یک Activity به Activity دیگری ارسال کنید در این موقع از متد ()putExtra استفاده می‌کنید. و این تابع دوتا پارامتر می‌گیرداولی به عنوان کلید و دومی همان مقدار می‌باشد .

و اما این اطلاعات را باید در صفحه ی مقابل دریافت کنید و نحوی دریافت اطلاعات در Activity مقصد با متد getExtra و به صورت زیر می‌باشد .

از جمله موارد مختلف استفاده از اینتنت ها در اندروید :

  • رفتن از یک اکتیویتی به اکتیویتی دیگر و ارسال پارامتر هایی همراه آن

  • زمانی که اعلانی به یک Service به همراه یکسری داده ها ارسال می‌کنید

  • برای ارسال اعلان به یک BroadcastReceiver و اینکه میتوانید یکسری داده نیز ارسال کنید
  • زمانی که شما قصد دارید یک ایمیل بفرستید از Intent ها در اندروید استفاده می‌کنید

  •  برای گرفتن تماس با یک شماره تلفن

موارد بالا نمونه کمی از استفاده هایی می‌باشد که برنامه نویسان می‌توانند از Intent ها در اندروید داشته باشند . ما در ادامه در قالب یک پروژه ، چندیدن مورد از این Intent ها را برای شما بررسی می‌کنم . در این پروژه کوچک ما قصد داریم ابتدا یک سری اطلاعات را از Activity 1  به اکتیویتی 2 ارسال کنیم و با کلیک به روی button های دیگر یک تماس گرفته شود و یک صفحه ی وب نیز به کمک Intent ها در اندروید باز کنیم.

مقالات پر بازدید کدایت : زبان برنامه نویسی کاتلین چیست ؟ و چه مزایایی نسبت به زبان جاوا دارد.

 

ابتدا یک اکتیویتی به اسم MyIntent ایجاد کنید و بعد از ایجاد در بخش لایه اکتیویتی و کد های XML آن کد های زیر را بنویسید.

در کد بالا و در قسمت xml ما یک EditText به همراه 3 تا Button ایجاد کردیم . با کلیک به روی Button اولی ، پیغامی که در EditText وارد ساختید به اکتیوتی مقصد ارسال می شود. همچنین با کلیک به روی Button ایجاد تماس ، یک تماس گرفته می‌شود و در آخر با Button آخری شما میتوانید یک صفحه وب با آدرسی که خودمان دادیم باز کنید.

کد های کاتلین بخش اکتیویتی MyIntent  :

در کد های بالا ما button ها و EditText  رو تعریف کردیم و گفتیم که با کلیک به روی هر کدام چه کاری انجام شود . و اما در صفحه مقصد باید بگویم که مقداری که با کلیک به روی Button اول فرستادیم را دریافت و نمایش دهد .

کد های XML لایه مقصد :

کد های کاتلین اکتیویتی MainActivity :

خروجی کد بالا : 

 

چکیده مطالب

ما در این مقاله ، یاد گرفتیم که Intent ها در اندروید چه کارایی دارد و انواع مختلف و فرق های که با هم داشتند را مشاهده کردیم . و همچنین چندین مورد از اینتنت ها پرکاربرد در اندروید را نیز  برای شما آوردیم.

 

مقالات مرتبط :  کاتلین مولتی پلتفرم موبایل  چه نوع فناوری است ؟
مقالات مرتبط : ازsharedpreferences در کاتلین چگونه استفاده می‌شود؟
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]
اشتراک‌گذاری

من فرشید حبیبی هستم، یک برنامه نویس موبایل با بیش از 5 سال تجربه. من علاقه زیادی به برنامه نویسی دارم و در این زمینه به طور مداوم در حال یادگیری و پیشرفت هستم. در حال حاضر، به عنوان یک برنامه نویس اندروید در یک شرکت معتبر مشغول به کار هستم و همچنین یک وبسایت آموزشی به نام کدایت را اداره می کنم. در کدایت، به تولید محتوای آموزشی در مورد برنامه نویسی اندروید و وب می پردازیم. هدف من از ایجاد این وبسایت، کمک به سایر برنامه نویسان اندرویدی برای یادگیری و پیشرفت در این زمینه است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *