اینتنت یا Intent در برنامه نویسی اندروید چیست؟ همراه با مثال

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

intent در اندروید چیست؟ اینتنت ها در برنامه نویسی اندروید چه کاربردی دارند؟ لیست intent های اندروید کدام ها هستند؟ در این مطلب از وبلاگ سایت اموزش برنامه نویسی می خواهیم به این سوالات پاسخ دهیم. پس تا آخر بخوانید تا با جواب آنها آشنا شوید.

اینتنت (Intent) چیست؟ 

واژه اینتنت (Intent) یعنی انجام کار. به اینصورت که بمنظور ساخت برنامه اندروید به واسطه intent به سیستم عامل اندروید اعلام می کنیم قصد انجام چه کاری را داریم و سیستم عامل چه کاری باید برای ما انجام دهد. به طور کلی اینتنت واسطی است مابین کامپوننت های مختلف (شامل Activity ها، Service ها، Broadcast Receiver ها و…) درون یک اپلیکیشن و یا مابین چند اپلیکیشن. کاربرد های متعددی برای اینتنت وجود دارد که شاید ساده ترین آن را بتوان انتقال بین دو Activity درون یک اپلیکیشن دانست.

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

همچنین بخوانید: فرگمنت چیست و در برنامه نویسی اندروید چه کاربردی دارد؟

وظیفه اینتنت ها در اندروید چیست؟

در واقع وظیفه اینتنت در برنامه نویسی اندروید این است که در برخی جاها، به اندروید می‌گوید چه چیزی می‌خواهد و اگر سیستم عامل اندروید (با توجه به برنامه‌های سیستمی خود و نرم‌افزارهای نصب شده) آن چیز خواسته شده در توانش باشد، به او کمک خواهد کرد؛ همان طور که از معنی ظاهریش پیداست.

کاربرد اینتنت ها در برنامه نویسی اندروید

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

  • شروع یک سرویس
  • لانچ کردن یک اکتیویتی
  • نمایش یک صفحه وب
  • نمایش لیستی از محتواها
  • انتشار پیام عمومی
  • شماره گیری تماس تلفنی و غیره
  • و…

همچنین بخوانید » دوره asp .net core مهارت محور با ساخت پروژه های حرفه ای از پایه تا فوق پیشرفته

 انواع intent در اندروید

دو نوع intent در اندروید وجود دارد:

  1. ضمنی (Implicit)
  2. صریح (Explicit)

۱- Implicit Intent

اینتنت ضمنی یا Implicit Intent زمانی است که شما تمایل خود برای کار خاصی را به سیستم عامل اعلام می‌کنید. برای مثال «من را به یک اکتیویتی ببر که بتوانم یک متن را به اشتراک بگذاریم!» در اینجا تمایل اشتراک گذاری اعلام شده اما نام اکتیویتی خاصی معین نشده است.

سیستم عامل در هنگام اجرای اینتنت‌های ضمنی بر اساس نوع تمایل (مثلا در جمله بالا، اشتراک گذاری متن) تمام اپلیکیشن‌های دارای اکتیویتی مناسب برای برآورده کردن آن تمایل را به کاربر نشان می‌دهد.

Implicit Intent کامپاننت را مشخص نمی کند. در چنین حالتی، intent اطلاعات اجزای موجود ارائه شده توسط سیستمی را که قرار است فراخوانی شود، ارائه می دهد.

به عنوان مثال، می توانید کد زیر را برای مشاهده صفحه وب بنویسید.

Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(“http://www.javatpoint.com”));
startActivity(intent);

همچنین بخوانید: روش های کسب درآمد برنامه نویسی اندروید

۲- Explicit Intent

اینتنت صریح Explicit Intent زمانی است که شما دقیقا اکتیویتی مقصد را مشخص می‌کنید. نام آن را در هنگام ساختن اینتنت وارد می‌کنید و سیستم عامل با اجرای این اینتنت کاربر را به اکتیویتی خواسته شده می‌برد.

Explicit Intent کامپوننت را مشخص می کند. در چنین حالتی، intent کلاس خارجی را برای فراخوانی فراهم می کند.

Intent i = new Intent(getApplicationContext(), ActivityTwo.class);
startActivity(i);

همچنین بخوانید: دانلود فیلم های آموزش برنامه نویسی اندروید

مثالی از Android Implicit Intent

File: activity_main.xml

<?xml version=“۱.۰” encoding=“utf-8”?>  

<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”  

    xmlns:app=“http://schemas.android.com/apk/res-auto”  

    xmlns:tools=“http://schemas.android.com/tools”  

    android:layout_width=“match_parent”  

    android:layout_height=“match_parent”  

    tools:context=“example.javatpoint.com.implicitintent.MainActivity”>  

  

    <EditText  

        android:id=“@+id/editText”  

        android:layout_width=“wrap_content”  

        android:layout_height=“wrap_content”  

        android:layout_marginEnd=“۸dp”  

        android:layout_marginStart=“۸dp”  

        android:layout_marginTop=“۶۰dp”  

        android:ems=“۱۰”  

        app:layout_constraintEnd_toEndOf=“parent”  

        app:layout_constraintHorizontal_bias=“۰.۵۷۵”  

        app:layout_constraintStart_toStartOf=“parent”  

        app:layout_constraintTop_toTopOf=“parent” />  

  

    <Button  

        android:id=“@+id/button”  

        android:layout_width=“wrap_content”  

        android:layout_height=“wrap_content”  

        android:layout_marginRight=“۸dp”  

        android:layout_marginLeft=“۱۵۶dp”  

        android:layout_marginTop=“۱۷۲dp”  

        android:text=“Visit”  

        app:layout_constraintEnd_toEndOf=“parent”  

        app:layout_constraintHorizontal_bias=“۰.۰”  

        app:layout_constraintStart_toStartOf=“parent”  

        app:layout_constraintTop_toBottomOf=“@+id/editText” />  

</android.support.constraint.ConstraintLayout>  

File: MainActivity.java

package example.javatpoint.com.implicitintent;

import android.content.Intent;

import android.net.Uri;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    Button button;

    EditText editText;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        button = findViewById(R.id.button);

        editText =  findViewById(R.id.editText);

        button.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                String url=editText.getText().toString();

                Intent intent=new Intent(Intent.ACTION_VIEW, Uri.parse(url));

                startActivity(intent);

            }

        });

    }

}

خروجی :

 

 

 

 

 

 

 

 

 

مثالی از Android Explicit Intent

این مثال یک اکتیویتی را از دیگری و بالعکس فراخوانی می کند.

File: activity_main.xml

<?xml version=“۱.۰” encoding=“utf-8”?>

<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”

    xmlns:app=“http://schemas.android.com/apk/res-auto”

    xmlns:tools=“http://schemas.android.com/tools”

    android:layout_width=“match_parent”

    android:layout_height=“match_parent”

    tools:context=“example.javatpoint.com.explicitintent.FirstActivity”>

    <TextView

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:layout_marginEnd=“۸dp”

        android:layout_marginStart=“۸dp”

        android:layout_marginTop=“۸dp”

        android:text=“First Activity”

        app:layout_constraintBottom_toBottomOf=“parent”

        app:layout_constraintEnd_toEndOf=“parent”

        app:layout_constraintHorizontal_bias=“۰.۴۵۴”

        app:layout_constraintLeft_toLeftOf=“parent”

        app:layout_constraintRight_toRightOf=“parent”

        app:layout_constraintStart_toStartOf=“parent”

        app:layout_constraintTop_toTopOf=“parent”

        app:layout_constraintVertical_bias=“۰.۰۶” />

    <Button

        android:id=“@+id/button”

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:layout_marginEnd=“۸dp”

        android:layout_marginStart=“۸dp”

        android:layout_marginTop=“۳۹۲dp”

        android:onClick=“callSecondActivity”

        android:text=“Call second activity”

        app:layout_constraintEnd_toEndOf=“parent”

        app:layout_constraintStart_toStartOf=“parent”

        app:layout_constraintTop_toTopOf=“parent” />

</android.support.constraint.ConstraintLayout>

File: MainActivityOne.java

package example.javatpoint.com.explicitintent;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

  public class FirstActivity extends AppCompatActivity {

      @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_first);

    }

    public void callSecondActivity(View view){

        Intent i = new Intent(getApplicationContext(), SecondActivity.class);

        i.putExtra(“Value1”“Android By Javatpoint”);

        i.putExtra(“Value2”“Simple Tutorial”);

        // Set the request code to any code you like, you can identify the

        // callback via this code

        startActivity(i);

    }

  }

File: activitytwo_main.xml

<?xml version=“۱.۰” encoding=“utf-8”?>

<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”

    xmlns:app=“http://schemas.android.com/apk/res-auto”

    xmlns:tools=“http://schemas.android.com/tools”

    android:layout_width=“match_parent”

    android:layout_height=“match_parent”

    tools:context=“example.javatpoint.com.explicitintent.SecondActivity”>

    <TextView

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:layout_marginEnd=“۸dp”

        android:layout_marginStart=“۸dp”

        android:layout_marginTop=“۸dp”

        android:text=“Second Activity”

        app:layout_constraintBottom_toBottomOf=“parent”

        app:layout_constraintEnd_toEndOf=“parent”

        app:layout_constraintHorizontal_bias=“۰.۴۵۴”

        app:layout_constraintLeft_toLeftOf=“parent”

        app:layout_constraintRight_toRightOf=“parent”

        app:layout_constraintStart_toStartOf=“parent”

        app:layout_constraintTop_toTopOf=“parent”

        app:layout_constraintVertical_bias=“۰.۰۶” />

    <Button

        android:id=“@+id/button”

        android:layout_width=“wrap_content”

        android:layout_height=“wrap_content”

        android:layout_marginEnd=“۸dp”

        android:layout_marginStart=“۸dp”

        android:layout_marginTop=“۳۹۲dp”

        android:onClick=“callFirstActivity”

        android:text=“Call first activity”

        app:layout_constraintEnd_toEndOf=“parent”

        app:layout_constraintStart_toStartOf=“parent”

        app:layout_constraintTop_toTopOf=“parent” />

</android.support.constraint.ConstraintLayout>

File: MainActivityTwo.java

package example.javatpoint.com.explicitintent;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Toast;

public class SecondActivity extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_second);

        Bundle extras = getIntent().getExtras();

        String value1 = extras.getString(“Value1”);

        String value2 = extras.getString(“Value2”);

        Toast.makeText(getApplicationContext(),“Values are:\n First value: “+value1+

                “\n Second Value: “+value2, Toast.LENGTH_LONG).show();

    }

    public void callFirstActivity(View view){

        Intent i = new Intent(getApplicationContext(), FirstActivity.class);

        startActivity(i);

    }

}

خروجی :

 

 

 

 

 

 

 

 

در صورتیکه می خواهید برنامه نویسی اندروید را اصولی و پروژه محور یاد بگیرید دوره زیر را به شما پیشنهاد می کنیم:

با مشاهده این آموزش، می توانید به عنوان یک برنامه نویس اندروید با توجه به هدفی که در نظر دارد، اپلیکیشنی با حوزه کاربردهای مختلف را با استفاده از پروژه نمونه ایجاد کنید.

دوره پیشنهادی برای یادگیری برنامه نویسی اندروید:
دوره متخصص اندروید شامل دوره های کاربردی برای ورود به بازار کار اندروید

این پکیج، برنامه نویسی اندروید شامل همه اموزشهای لازم از نصب اندروید استودیو گرفته تا آموزش کار با Android Studio با جاوا و کاتلین و ساخت پروژه های حرفه ای به شما آموزش داده می شود و اگر هیچ دانشی از گذشته در این زمینه ندارید مشکلی نیست، چون این دوره آموزش برنامه نویسی موبایل اندروی را بصورت کامل یاد میگیرید و بعد از ان می توانید درآمد زایی کنید.

commentشما بگید!

شما چه سوالی درباره این موضوع دارید که اینجا مطرح نشده است؟ لطفا تجربیات خودتان را در این زمینه حتما توی کامنت برای ما بنویسید. منتظر نظرات، پیشنهادات و سوالات شما در همین صفحه از سایت آموزش برنامه نویسی الکامکو هستیم…

توجه

مقاله هایی که در سایت به صورت رایگان قرار گرفته است فقط برای مطالعه بیشتر شما کاربران عزیز می باشد. از هرگونه تماس تلفنی با پشتیبانی سایت و سوال در مورد محتوای مقاله ها خودداری شود.

shareاشتراک گذاری این مطلب

shareآخرین مقالات

توجه

مقاله هایی که در سایت به صورت رایگان قرار گرفته است فقط برای مطالعه بیشتر شما کاربران عزیز می باشد. از هرگونه تماس تلفنی با پشتیبانی سایت و سوال در مورد محتوای مقاله ها خودداری شود.

Generic filters
Exact matches only

آخرین مقالات

آموزش های تکمیل شده

توجه

مقاله هایی که در سایت به صورت رایگان قرار گرفته است فقط برای مطالعه بیشتر شما کاربران عزیز می باشد. از هرگونه تماس تلفنی با پشتیبانی سایت و سوال در مورد محتوای مقاله ها خودداری شود.

2 دیدگاه
بازخورد درون خطی
مشاهده همه نظرات
شهرام د
2 سال گذشته

مثال خوبی از اینتنت ها بود

پاسخ دادن به  شهرام د
2 سال گذشته

تشکر