BCA / B.Tech 9 min read

Linking Activities Using Intents

Intents का उपयोग करके Activities को Link करना

Intent क्या है? (What is an Intent?)

Android में, Intent एक messaging object है जिसका उपयोग आप दूसरे app components से action का request करने के लिए कर सकते हैं। सरल शब्दों में, यह एक component (जैसे एक activity) से दूसरे component को भेजा गया एक message है।

इसका सबसे आम उपयोग एक activity से दूसरी activity को start करना है, लेकिन इसका उपयोग services को start करने या broadcasts भेजने के लिए भी किया जा सकता है।


Intents के प्रकार (Types of Intents)

Intents दो प्रकार के होते हैं:

1. Explicit Intent (स्पष्ट Intent)

  • क्या है: Explicit Intent का उपयोग तब किया जाता है जब आप जानते हैं कि आपको कौन-सा specific component (activity) start करना है। आप उस component का class name सीधे specify करते हैं।
  • कब उपयोग करें: इसका उपयोग ज्यादातर अपनी ही application के अंदर एक screen से दूसरी screen पर जाने के लिए किया जाता है।

Java में उदाहरण:

मान लीजिए आप `MainActivity` से `SecondActivity` पर जाना चाहते हैं।


// MainActivity.java के अंदर

// 1. एक नया Intent object बनाएं
// पहला parameter "context" है (current activity)
// दूसरा parameter target activity का class है
Intent intent = new Intent(MainActivity.this, SecondActivity.class);

// 2. Activity को start करें
startActivity(intent);

2. Implicit Intent (अस्पष्ट Intent)

  • क्या है: Implicit Intent में, आप component का नाम specify नहीं करते हैं। इसके बजाय, आप एक general action declare करते हैं (जैसे "view a map," "send an email," या "dial a number")।
  • कैसे काम करता है: Android system तब आपके device पर installed सभी apps को check करता है जो इस action को handle कर सकती हैं। यदि केवल एक app मिलती है, तो वह सीधे start हो जाती है। यदि कई apps मिलती हैं, तो user को चुनने के लिए एक dialog दिखाया जाता है।
  • कब उपयोग करें: जब आप अपनी app से किसी दूसरे app की functionality का उपयोग करना चाहते हैं।

Java में उदाहरण:

एक web page खोलने के लिए Implicit Intent:


// एक web URL को खोलने का Intent
String url = "https://www.google.com";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));

// Activity को start करें
startActivity(intent);

इस code को चलाने पर, Android user का default web browser खोलेगा और google.com पर जाएगा।


Activities के बीच Data Pass करना (Passing Data Between Activities)

आप Intents का उपयोग करके एक activity से दूसरी activity में data भी भेज सकते हैं। यह `extras` के माध्यम से किया जाता है।

Data भेजने की प्रक्रिया (Sender Activity):

  1. Intent object के साथ `putExtra()` method का उपयोग करें।
  2. `putExtra()` में दो चीजें होती हैं: एक unique key (String) और data की value।

Java में उदाहरण (`MainActivity.java`):


Intent intent = new Intent(MainActivity.this, SecondActivity.class);

// Data को key-value pair के रूप में रखें
intent.putExtra("USER_NAME", "Anil Sharma");
intent.putExtra("USER_AGE", 21);

startActivity(intent);

Data प्राप्त करने की प्रक्रिया (Receiver Activity):

  1. `getIntent()` method का उपयोग करके उस intent को प्राप्त करें जिसने activity को start किया।
  2. उस intent से data निकालने के लिए `get...Extra()` methods (जैसे `getStringExtra()`, `getIntExtra()`) का उपयोग करें। आपको वही key pass करनी होगी जो sender ने उपयोग की थी।

Java में उदाहरण (`SecondActivity.java`):


// onCreate() method के अंदर

// Intent प्राप्त करें
Intent intent = getIntent();

// Key का उपयोग करके data निकालें
String name = intent.getStringExtra("USER_NAME");
int age = intent.getIntExtra("USER_AGE", 0); // 0 default value है

// अब आप इन variables का उपयोग कर सकते हैं
// जैसे TextView में name और age को set करना