اموزش intent در اندروید
در این اموزش میخواهیم به بررسی intent در اندروید بپردازیم.intent ها در برنامه نویسی اندروید بسیار مهم هستند و اشنایی با ان برای هر برنامه نویسی لازم است.
intent ها درخواست ها یا دستوراتی هستند که از سیستم تقاضای انجام یه کاری را میکنند مانند ارسال اس ام اس همانطور که در اموزش ارسال ای اس ام اس با ان کار کردیم.دلیل ان استفاده از یک اکتیویتی دیگر است مانند همان مثال اول برای باز کردن اکتیویتی جدید اینجا هم منظور همان است (باز کردن اکتیویتی جدید برای ارسال اس ام اس).
خب intent ها 2 نوع تقسیم میشوند که شامل موارد زیر هستند:
صریح یا Explicit intent
خب اگر از اسمش متوجه نشدید مشکلی نیست میتوانید اینتنت “مشخص شده”و یا “اشکار” هم بگوییم.خب منظور از مشخص شده یا صریح این است که در این نوع دقیقا مشخص میکنیم که چه اکتیویتی اجرا شود و یا به طور واضح تر شما نمیتوانید از اکتیویتی های دیگر استفاده کنید و فقط از اکتیویتی هایی که در برنامه تان هست استفاده میکنید مانند اینکه 2 اکتیویتی دارید و میخواهید از اولی به دومی بروید به شکل زیر:
1 2 | Intent myintent = new Intent(this, Activity2.class); startActivity(myintent); |
در اینجا از اکتیویتی جاری به اکتیویتی 2 می رویم.
ضمنی یا Implicit intent
خب این این intent همانطور که احتمالا حدس میزنید کاملا برعکس نوع قبلی است و شما میتوانید به هر اکتیویتی بروید و از هر سرویسی استفاده کنید.وقتی شما بخواهید از این نوع استفاده کنید برنامه لیست درازی از سرویس هایش را به شما نمایش می دهد که هر کدام برای کاری هستنند برای مثال به کد زیر توجه کنید:
1 2 3 4 | Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms body!", "default content"); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent); |
جا داره که در اینجا کمی بیشتر راجب نوع دوم حرف بزنیم.تا اینجا متوجه شدیم که در حالت دوم ما به برنامه میگوییم قصد انجام چه کاری را داریم و برنامه بهترین گزینه را برای ما انتخاب میکند.
اما این انتخاب چگونه است؟خب در اینجا برنامه شروع به بررسی گزینه ها میکند و این کار را انجام می دهد و اخر سه حالت پیش می اید:
حالت اول هیچ موردی پیدا نمی شود و برنامه خطا می دهد.
حالت دوم بهترین گزینه پیدا شده و سیستم ان انتخاب میکند.
در حالت اخر گزینه های بیشتر برای اکتیویتیمان پیدا شود و در این حالت یا خودمان انتخاب میکنیم یکی را یا خود سیستم.همه این عملیات های انتخاب و غیره توسط intent-filter انجام می شود به صورت دقیق تر اگر بخواهیم بگوییم intent filter ها که در فایل manifest و یا خود فایل جاوا تعریف می شوند دو وظیفه دارند یکی همانطور که گفتیم انتخاب بهترین گزینه و وظیفه دیگر معرفی قابلیت های اکتیویتی ها سرویس ها و حتی broadcast reciver ها است همانطور که در پست اموزش broadcat reciver میتوانید ببینید.
intent-filter ها وظیفه دارند ویژگی های intent ها را بررسی کنند(این ویژگی ها که شامل category و action و data ) تا بتوانند بهترین انتخاب را داشته باشند و intent که همه این ویژگی هارا داشته باشد و یا به شکل دیگر بگوییم بتواند از ازمون انتخاب با موفقیت بگذرد بهترین گزینه برای برنامه ما است.
در اموزش های بعدی بیشتر به intent ها میپردازیم و در مثل هایمان هم استفاده میکنیم.
امیدوارم از این اموزش راضی بوده باشید و تا جای ممکن تلاش شد خلاصه و مفید توضیح داده شود
موفق باشید.
ممنون توضیحاتتان عالی و واضح بود ولی کامل نبود و چیز های زیادی برای کد زنی یاد نمیداد
سلام خسته نباشید ممنونم از مطالب مفیدتون.
اگر لطف کنید در آموزش ها یک مثال ساده و کاربردی بیارید عالی میشه.
سلام و درود
مثال قرار گرفته است.