no-img
سامنتا

Intents و Filters در اندروید


سامنتا
دوره های پیشنهادی

ادامه مطلب

Intents و Filters در اندروید


Intents و Filters در اندروید

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

 

یک Intent در اندروید ، توصیف انتزاعی ، انجام یک عمل در اندروید هست ! بطور ساده ، شما میتوانید اکتیوتی جدیدی را توسط startActivity  اجرا کنید ، از broadcastIntent  استفاده کنید تا بتوانید آنرا به هر یک از اجزا BroadcastReceiver  ارسال کنید ، startService(Intent)  یا bindService(Intent, ServiceConnection, int) برای انجام یک پردازش در پس زمینه ی صفحه ی نمایش استفاده کنید !

Intent به تنهایی یا شی اینتنت در اندروید ب تنهایی ساختار غیر فعالی از اطلاعات هست که برای انجام یک عمل استفاده میشود . 

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

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

Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
email.putExtra(Intent.EXTRA_EMAIL, recipients);
email.putExtra(Intent.EXTRA_SUBJECT, subject.getText().toString());
email.putExtra(Intent.EXTRA_TEXT, body.getText().toString());
startActivity(Intent.createChooser(email, "Choose an email client from..."));

کد بالا را اگر اجرا بکنید متد startActivity ، فراخوانی میشود و دنبال یک اکتیویتی مناسب برای ارسال ایمیل میگردد و کادری مشابه تصویر زیر برای شما باز میشود : 

ارسال ایمیل در اندروید

ارسال ایمیل در اندروید

برای مثال فرض کنید که شما یک لینک دارید و قرار هست این لینک در اندروید ، توسط مرورگر وب به نمایش گذاشته شود ، برای این هدف ، اکتیویتی شما اینتنتی با نام ACTION_WEB_SEARCH  صادر خواهد این اینتنت به اندروید شما معرفی خواهد شد و تمام برنامه هایی که قابلیت فراخوانی یک لینک اینترنتی را دارند لیست خواهند شد . 

ممکن هست یک url توسط برنامه های دیگری نیز اجرا شود ولی هدف ما در این مثال استفاده از مرورگر وب هست که در اندروید وجود دارد ، 

کدهای زیر را ببینید : 

String q = "Samenta";
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH );
intent.putExtra(SearchManager.QUERY, q);
startActivity(intent);

کدهای بالا همانطور که مشخص هست کلمه ی samenta را جستجو خواهد کرد این کار توسط موتور جستجوی اندروید انجام شده و نتیجه برای آن نمایش داده خواهد شد 

مکانیسم جداگانه ای ، برای تحویل اینتنت ها به کامپوننت ها – اکتیویتی ها ، سرویس ها و برودکست رسیور ها وجود دارد :

ردیفمتد و توضیحات آن 
۱Context.startActivity()
شی اینتنتی که به این متد پاس خواهد شد جهت راه اندازی اکتیویتی جدید ، یا دریافت اکتیویتی در حال اجرا جهت انجام عملیات روی آن هست 
۲Context.startService()
شی اینتنت که به این متد فرستاده میشود جهت کار با سرویس ها هست ، راه اندازی سرویس جدید یا عملیات روی سرویسی که وجود دارد 
۳Context.sendBroadcast()
اینتت ارسالی به این متد نیز مخصوص کار با تامین کننده ی محتواها خواهد بود جهت انتشار پیغامی برای هر Broadcast Reciver که دلتان بخواهد 

Intent Objects در اندروید :

Intent Object بسته ای از اطلاعات هست که توسط کامپوننت های اندرویدی و همچنین سیستم اندروید دریافت و استفاده میشود . 

هر اینتنت از اجزای زیر تشکیل شده است :

Action در اینتنت اندروید :

Action یکی از اجزای اجباری و مهم هر شی اینتنت هست که رشته ای از نام عملیات هست که باید انجام شود — یا در حالت اینتنت های BroadCast نام عملی هست که انجام گرفته است و گزارش آن ارسال شده است .

Action در اینتنت توسط setAction() تعریف میشود و با متد getAction() هم دریافت میشود . 

Data در اینتنت اندروید : 

مشخصات Data را به intent filter می افزاید ، این مشخصات میتواند تنها URI باشد ، یا تنها نوع داده ها باشد ، یا شامل هر دو مورد باشد . یک URI بوسیله ی جداسازی ویژگی های هر قسمت آن ، مشخص میشود : 

 

 

ادامه دارد …

 




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

پشتیبانی سامنتا 84 نوشته در سامنتا دارد . مشاهده تمام نوشته های

پرسش و پاسخ این آموزش


3 پاسخ به “Intents و Filters در اندروید”

  1. سلدا گفت:

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

  2. ali گفت:

    سلام واقعا عالی بود مرسی

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

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