اگه اندروید رو یک شهر بزرگ تصور کنی، اینتنت ها مثل «نامهرسانها» یا «تاکسی ها» هستن. کارشون چیه؟ جابهجا کردن پیغامها و اطلاعات بین بخش های مختلف سیستم. مثلاً وقتی میخوای از یه صفحه به صفحهی دیگه بری، یا میخوای گالری گوشی رو باز کنی تا یه عکس انتخاب کنی، داری از اینتنت استفاده میکنی.
در واقع اینتنت یعنی «قصد و نیت». تو به اندروید میگی: «من قصدم اینه که فلان کار رو انجام بدم»، و اندروید هم کمکت میکنه اون کار انجام بشه.
انواع اینتنتها: کدوم به کدوم؟
توی اندروید کلاً دو جور اینتنت داریم که هر کدوم دنیای خودشون رو دارن:
۱. اینتنتهای صریح (Explicit Intents)
این مدل دقیقاً مثل این میمونه که به راننده تاکسی آدرس دقیق بدی: «من رو ببر به خیابان فلان، پلاک فلان». در این حالت، تو دقیقاً اسم اون کلاسی (Activity) که میخوای باز بشه رو میگی. معمولاً برای جابجایی بین صفحات داخل خودِ اپلیکیشن از این نوع استفاده میکنیم.
-
مثال: وقتی کاربر روی دکمه «پروفایل» کلیک میکنه و تو میخوای دقیقاً کلاس
ProfileActivityباز بشه.
۲. اینتنتهای ضمنی (Implicit Intents)
این مدل مثل اینه که بیای وسط خیابون داد بزنی: «آهای! کی اینجا گرسنه ست؟ من پیتزا میخوام!». تو نمیگی کدوم رستوران، فقط میگی چی میخوای. در این حالت، تو اسمی از کلاس خاصی نمیبری، فقط به سیستم میگی: «من میخوام یه آدرس وب رو باز کنم» یا «میخوام یه عکس بگیرم». حالا سیستم میگرده ببینه چه اپلیکیشن هایی (مثل کروم، فایرفاکس و...) میتونن این کار رو انجام بدن و اون ها رو به کاربر پیشنهاد میده.
-
مثال: باز کردن یک لینک وب یا اشتراکگذاری یک متن در شبکه های اجتماعی.
چطوری اطلاعات رو جابهجا کنیم؟ (Extras)
اینتنت ها فقط برای جابجایی نیستن؛ اونها میتونن با خودشون «بار» هم حمل کنن! مثلاً میخوای وقتی کاربر رو به صفحهی جزئیات محصول میبری، «اسم محصول» رو هم با خودت ببری. برای این کار از متدی به اسم putExtra استفاده میکنیم که اطلاعات رو مثل یه مسافر سوارِ اینتنت میکنه و اون طرف با getIntent مسافر رو پیاده میکنیم.
تفاوت این دو نوع در یک نگاه
| ویژگی | Explicit (صریح) | Implicit (ضمنی) |
| هدف | یک کلاس کاملاً مشخص | یک انجام کار (Action) کلی |
| امنیت | بالاست (چون میدونی کجا میری) | کمتر (چون ممکنه اپهای دیگه بپرن وسط) |
| کاربرد اصلی | جابهجایی بین صفحات اپ خودت | تعامل با اپلیکیشنهای دیگر گوشی |
| مثال کد | Intent(this, Target.class) |
Intent(Intent.ACTION_VIEW, uri) |
جمع بندی
اینتنت ها قلب تپنده ی ارتباطات در اندروید هستن. بدون اون ها، اپلیکیشن تو مثل یه جزیرهی متروکه میمونه که هیچ راهی به بیرون یا حتی بین اتاق هاش نداره.
-
اگه مقصد رو میشناسی: Explicit.
-
اگه فقط میدونی چه کاری میخوای انجام بشه: Implicit.
نظرات کاربران (0)