intent در اندروید چیست؟ اینتنت ها در برنامه نویسی اندروید چه کاربردی دارند؟ لیست intent های اندروید کدام ها هستند؟ در این مطلب از وبلاگ سایت اموزش برنامه نویسی می خواهیم به این سوالات پاسخ دهیم. پس تا آخر بخوانید تا با جواب آنها آشنا شوید.
اینتنت (Intent) چیست؟
واژه اینتنت (Intent) یعنی انجام کار. به اینصورت که بمنظور ساخت برنامه اندروید به واسطه intent به سیستم عامل اندروید اعلام می کنیم قصد انجام چه کاری را داریم و سیستم عامل چه کاری باید برای ما انجام دهد. به طور کلی اینتنت واسطی است مابین کامپوننت های مختلف (شامل Activity ها، Service ها، Broadcast Receiver ها و…) درون یک اپلیکیشن و یا مابین چند اپلیکیشن. کاربرد های متعددی برای اینتنت وجود دارد که شاید ساده ترین آن را بتوان انتقال بین دو Activity درون یک اپلیکیشن دانست.
Intent ها حامل یک سری پیامهایی هستند که به واسطهی آنها، از سیستم تقاضای انجام کاری را میکنیم. که از این تعریف، مفهوم پیام یا پیام رسانی بودن اینتنت به ما میرسد و در نتیجه باید گفت که Intent یک نمونه پستچی پیشرفته در اندروید و مختص داخل سییستم میباشد.
همچنین بخوانید: فرگمنت چیست و در برنامه نویسی اندروید چه کاربردی دارد؟
وظیفه اینتنت ها در اندروید چیست؟
در واقع وظیفه اینتنت در برنامه نویسی اندروید این است که در برخی جاها، به اندروید میگوید چه چیزی میخواهد و اگر سیستم عامل اندروید (با توجه به برنامههای سیستمی خود و نرمافزارهای نصب شده) آن چیز خواسته شده در توانش باشد، به او کمک خواهد کرد؛ همان طور که از معنی ظاهریش پیداست.
کاربرد اینتنت ها در برنامه نویسی اندروید
اینتنت های اندروید معمولا برای اهداف زیر در مراحل ساخت اپلیکیشن اندروید استفاده می شوند:
- شروع یک سرویس
- لانچ کردن یک اکتیویتی
- نمایش یک صفحه وب
- نمایش لیستی از محتواها
- انتشار پیام عمومی
- شماره گیری تماس تلفنی و غیره
- و…
همچنین بخوانید » دوره asp .net core مهارت محور با ساخت پروژه های حرفه ای از پایه تا فوق پیشرفته
انواع intent در اندروید
دو نوع intent در اندروید وجود دارد:
- ضمنی (Implicit)
- صریح (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 با جاوا و کاتلین و ساخت پروژه های حرفه ای به شما آموزش داده می شود و اگر هیچ دانشی از گذشته در این زمینه ندارید مشکلی نیست، چون این دوره آموزش برنامه نویسی موبایل اندروی را بصورت کامل یاد میگیرید و بعد از ان می توانید درآمد زایی کنید.
مثال خوبی از اینتنت ها بود
تشکر