Activity — क्या है, Android में ऐप स्क्रीन और इसका Lifecycle

लेखक: IT Sectr प्रकाशित: 2026-02-22 पढ़ने का समय: 7 मिनट

Activity — Android एप्लिकेशन का एक मूल घटक है जो उपयोगकर्ता इंटरफ़ेस के साथ एक स्क्रीन प्रस्तुत करता है। सिस्टम सख्त जीवन चक्र के माध्यम से स्क्रीन का प्रबंधन करता है — कॉलबैक onCreate, onResume और onDestroy। प्रत्येक Activity AndroidManifest.xml में घोषित की जाती है और Intent के माध्यम से शुरू की जाती है। Android के इतिहास के बारे में और पढ़ें Google के आधिकारिक दस्तावेज़ में।

मुख्य बातें

  • Activity — Android घटक जो UI के साथ एक स्क्रीन प्रस्तुत करता है। Lifecycle के माध्यम से प्रबंधित
  • जीवन चक्र में 6 कॉलबैक शामिल हैं: onCreate, onStart, onResume, onPause, onStop, onDestroy
  • Intent — Activity शुरू करने और स्क्रीन के बीच डेटा स्थानांतरित करने की एक प्रणाली
  • Manifest — AndroidManifest.xml में प्रत्येक Activity का अनिवार्य पंजीकरण
  • ViewModel — Activity को पुनः बनाने पर डेटा संरक्षित करने के लिए Jetpack घटक

Activity क्या है?

Activity — Android एप्लिकेशन का एक मुख्य घटक है जो उपयोगकर्ता के साथ बातचीत के लिए एक विंडो प्रदान करता है। प्रत्येक Activity एक अलग स्क्रीन प्रबंधित करता है: कार्य सूची, लॉगिन फ़ॉर्म, फ़ोटो व्यूअर। Android सिस्टम अनुरोध पर Activity बनाता है और जब अन्य एप्लिकेशन को मेमोरी की आवश्यकता होती है तो इसे नष्ट कर देता है।

Activity पहली बार Android 1.0 (2008) में दिखाई दिया और इंटरफ़ेस का मुख्य निर्माण खंड बना हुआ है। Google (2026) के अनुसार, Google Play में 98% एप्लिकेशन में कम से कम एक Activity होता है। आधुनिक आर्किटेक्चर में, Google एक Activity के साथ कई Fragments की सिफारिश करता है, हालांकि क्लासिक मल्टी-स्क्रीन एप्लिकेशन एक सामान्य प्रथा बनी हुई है।

Activity stack (back stack) — कार्य स्टैक जो नेविगेशन इतिहास संग्रहीत करता है। जब उपयोगकर्ता "पीछे" दबाता है, तो वर्तमान Activity नष्ट हो जाती है और पिछली Activity पुनर्स्थापित हो जाती है। सिस्टम स्वचालित रूप से स्टैक का प्रबंधन करता है, लेकिन डेवलपर launchMode और Intent फ़्लैग के माध्यम से व्यवहार को नियंत्रित कर सकता है।

Activity का जीवन चक्र

Activity का जीवन चक्र अवस्थाओं और कॉलबैक का एक सेट है जिसके माध्यम से एक स्क्रीन निर्माण से विनाश तक गुज़रती है। Lifecycle को समझना महत्वपूर्ण है: अवस्थाओं के गलत प्रबंधन से मेमोरी लीक, डेटा हानि और एप्लिकेशन क्रैश होते हैं।

Android सिस्टम सख्त क्रम में कॉलबैक को कॉल करता है। डेवलपर संसाधनों को आरंभ करने, डेटा सहेजने और मेमोरी मुक्त करने के लिए आवश्यक विधियों को ओवरराइड करता है। प्रत्येक कॉलबैक का एक संगत जोड़ा होता है: onCreate ↔ onDestroy, onStart ↔ onStop, onResume ↔ onPause.

कॉलबैकउद्देश्यडेवलपर कार्रवाई
onCreateActivity बनाने पर कॉल किया जाता हैUI आरंभीकरण, ViewModel की सदस्यता
onStartActivity दृश्यमान हो जाता हैएनिमेशन, कैमरा, GPS शुरू करना
onResumeActivity इनपुट फ़ोकस प्राप्त करता हैवीडियो, टाइमर फिर से शुरू करना
onPauseActivity फ़ोकस खो देता हैड्राफ़्ट सहेजना, एनिमेशन रोकना
onStopActivity दूसरी स्क्रीन से छिपा हुआ हैभारी संसाधन मुक्त करना
onDestroyActivity नष्ट हो जाता हैसदस्यताएँ साफ़ करना, Closeable

Activity की अवस्थाएँ

Activity की चार अवस्थाएँ होती हैं: Running (onResume सक्रिय), Paused (दृश्यमान लेकिन फ़ोकस के बिना), Stopped (दृश्यमान नहीं), Destroyed (नष्ट)। सिस्टम मेमोरी की कमी होने पर Stopped अवस्था में Activity को समाप्त कर सकता है — डेटा onSaveInstanceState में सहेजा जाना चाहिए।

जीवन चक्र विधियाँ: onCreate, onStart, onResume

आइए Kotlin उदाहरण के साथ Activity जीवन चक्र की तीन मुख्य विधियों को देखें। onCreate — प्रवेश बिंदु, एक बार कॉल किया जाता है। यहाँ setContentView के माध्यम से लेआउट बाइंडिंग, RecyclerView आरंभीकरण, LiveData सदस्यता होती है। onStart — Activity उपयोगकर्ता को दृश्यमान हो जाता है। onResume — Activity फ़ोकस प्राप्त करता है और बातचीत के लिए तैयार होता है।

kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val recyclerView = findViewById<RecyclerView>(R.id.rv_items)
        recyclerView.layoutManager = LinearLayoutManager(this)
        loadItems()
    }

    override fun onStart() {
        super.onStart()
        startLocationUpdates()
    }

    override fun onResume() {
        super.onResume()
        resumeVideoPlayer()
    }
}

उदाहरण में, onCreate RecyclerView को आरंभ करता है और डेटा लोड करता है। onStart जियोलोकेशन अपडेट शुरू करता है — एक संसाधन जो केवल तभी काम करना चाहिए जब स्क्रीन दृश्यमान हो। onResume उस वीडियो को फिर से शुरू करता है जो onPause में रोका गया था। यह पृथक्करण पृष्ठभूमि में अनावश्यक कार्य को रोकता है।

AndroidManifest.xml में Activity की घोषणा

प्रत्येक Activity को AndroidManifest.xml फ़ाइल में घोषित किया जाना चाहिए। पंजीकरण के बिना, सिस्टम स्क्रीन नहीं ढूँढ पाएगा और ActivityNotFoundException फेंकेगा। मैनिफ़ेस्ट में क्लास का नाम, थीम, ओरिएंटेशन, launchMode और Intent फ़िल्टर निर्दिष्ट किए जाते हैं।

xml
<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/Theme.MyApp">

    <activity
        android:name=".MainActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".DetailActivity"
        android:parentActivityName=".MainActivity" />
</application>

exported फ़्लैग यह निर्धारित करता है कि क्या अन्य एप्लिकेशन Activity शुरू कर सकते हैं। मुख्य स्क्रीन के लिए exported=true, आंतरिक स्क्रीन के लिए — false। parentActivityName विशेषता मानक "ऊपर" नेविगेशन (Up Navigation) को सक्षम करती है।

Intent के माध्यम से Activity शुरू करना

Intent — एक ऑब्जेक्ट जो निष्पादित की जाने वाली क्रिया का वर्णन करता है। Activity के संदर्भ में, Intent का उपयोग डेटा स्थानांतरण के साथ दूसरी स्क्रीन शुरू करने के लिए किया जाता है। Intent स्पष्ट (एक विशिष्ट क्लास निर्दिष्ट करता है) और अंतर्निहित (एक क्रिया निर्दिष्ट करता है, सिस्टम उपयुक्त घटक चुनता है) हो सकता है।

kotlin
// स्पष्ट Intent — DetailActivity को डेटा के साथ शुरू करना
val intent = Intent(this, DetailActivity::class.java).apply {
    putExtra("item_id", itemId)
    putExtra("item_name", itemName)
}
startActivity(intent)

// DetailActivity में डेटा प्राप्त करना
val itemId = intent.getLongExtra("item_id", 0L)
val itemName = intent.getStringExtra("item_name") ?: ""

शुरू की गई Activity से परिणाम प्राप्त करने के लिए Activity Result API का उपयोग किया जाता है, जिसने पुराने startActivityForResult को बदल दिया। नया API टाइप-सेफ़, घोषणात्मक है और Jetpack Compose के साथ काम करता है।

kotlin
private val getResult = registerForActivityResult(
    ActivityResultContracts.StartActivityForResult()
) { result ->
    if (result.resultCode == Activity.RESULT_OK) {
        val data = result.data?.getStringExtra("result_key")
    }
}

fun openPicker() {
    val intent = Intent(this, PickerActivity::class.java)
    getResult.launch(intent)
}

पुनर्निर्माण पर स्थिति सहेजना

स्क्रीन घुमाने या कॉन्फ़िगरेशन बदलने पर, Android Activity को पुनः बनाता है — क्रमिक रूप से onDestroy और onCreate को कॉल करता है। स्थिति सहेजने के बिना, उपयोगकर्ता दर्ज किया गया डेटा, स्क्रॉल स्थिति और चयनित आइटम खो देता है। Android इस समस्या को हल करने के लिए दो प्रणालियाँ प्रदान करता है: onSaveInstanceState और ViewModel

onSaveInstanceState onDestroy कॉल करने से पहले Bundle में सरल डेटा सहेजता है। Jetpack का ViewModel Activity के पुनर्निर्माण को सहन करता है और मेमोरी में डेटा संग्रहीत करता है, जो जटिल ऑब्जेक्ट और नेटवर्क अनुरोधों के लिए अधिक कुशल है।

kotlin
class MainActivity : AppCompatActivity() {

    private val viewModel: MainViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // ViewModel स्वचालित रूप से डेटा सहेजता है
        viewModel.items.observe(this) { items ->
            updateAdapter(items)
        }
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("scroll_position", recyclerView.computeVerticalScrollOffset())
    }
}

Single Activity आर्किटेक्चर और Jetpack

Google का आधुनिक दृष्टिकोण — Single Activity आर्किटेक्चर है जिसमें एक Activity और कई Fragments होते हैं। एप्लिकेशन एक MainActivity का उपयोग करता है, और सभी नेविगेशन NavHostFragment के माध्यम से Navigation Component द्वारा संभाला जाता है। लाभ: केंद्रीकृत नेविगेशन, प्रति स्क्रीन साझा ViewModel, Deep Links का सही संचालन।

Jetpack Navigation Component back stack प्रबंधन, संक्रमण एनिमेशन और आर्गुमेंट पासिंग को स्वचालित करता है। NavHostFragment Activity लेआउट में रखा जाता है, और नेविगेशन ग्राफ़ (NavGraph) सभी स्क्रीन और उनके बीच कनेक्शन का वर्णन करता है। यह दृष्टिकोण Google द्वारा नई परियोजनाओं के लिए अनुशंसित है और Material Design सिद्धांतों का पालन करता है।

kotlin
class MainActivity : AppCompatActivity() {

    private val navController by lazy {
        findViewById<NavHostFragment>(R.id.nav_host_fragment)
            .navController
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // AppBar के लिए NavigationUI सेट करना
        setupActionBarWithNavController(navController)
    }

    override fun onSupportNavigateUp() = 
        navController.navigateUp() || super.onSupportNavigateUp()
}

अक्सर पूछे जाने वाले प्रश्न

Activity Fragment से कैसे अलग है?

Activity — अपने स्वयं के जीवन चक्र के साथ एक पूर्ण एप्लिकेशन स्क्रीन। Fragment — Activity के अंदर UI का एक हिस्सा जो Activity के पुनर्निर्माण को सहन करता है और उसके Lifecycle पर निर्भर करता है। Activity अनिवार्य है, Fragment वैकल्पिक है।

एक एप्लिकेशन में कितने Activities हो सकते हैं?

कोई सीमा नहीं है। प्रत्येक स्क्रीन आमतौर पर एक अलग Activity प्रस्तुत करती है। सरल एप्लिकेशन के लिए एक पर्याप्त है, मल्टी-स्क्रीन के लिए — 5 से 20 तक। Google एक Activity के साथ कई Fragments की सिफारिश करता है।

Activity में launchMode क्या है?

launchMode यह निर्धारित करता है कि कार्य स्टैक में Activity कैसे बनाई जाती है। चार मोड: standard (नया इंस्टेंस बनाया जाता है), singleTop, singleTask (प्रति कार्य एक इंस्टेंस) और singleInstance (पृथक कार्य)। मोड AndroidManifest.xml में सेट किया जाता है।

Activities के बीच डेटा कैसे स्थानांतरित करें?

Intent के माध्यम से — extras (putExtra) वाला एक ऑब्जेक्ट जिसमें प्रिमिटिव, स्ट्रिंग, Parcelable या Serializable हो सकते हैं। वापसी संचार के लिए Activity Result API का उपयोग किया जाता है — startActivityForResult का आधुनिक टाइप-सेफ़ प्रतिस्थापन।

Android में Configuration Change क्या है?

Configuration Change — कॉन्फ़िगरेशन बदलने (स्क्रीन घुमाना, भाषा बदलना, कीबोर्ड) पर Activity का पुनर्निर्माण। सिस्टम onDestroy → onCreate कॉल करता है। डेटा सहेजने के लिए onSaveInstanceState या Jetpack का ViewModel उपयोग करें।

सारांश

  • Activity — एक मूल Android घटक जो जीवन चक्र के माध्यम से प्रबंधित उपयोगकर्ता इंटरफ़ेस के साथ एक स्क्रीन प्रस्तुत करता है
  • जीवन चक्र में छह कॉलबैक होते हैं: onCreate, onStart, onResume, onPause, onStop, onDestroy — प्रत्येक का सख्त उद्देश्य है
  • Intent स्पष्ट और अंतर्निहित कॉल के माध्यम से Activity लॉन्च और स्क्रीन के बीच डेटा स्थानांतरण प्रदान करता है
  • AndroidManifest.xml में नाम, थीम, ओरिएंटेशन और फ़िल्टर के साथ प्रत्येक Activity का अनिवार्य पंजीकरण आवश्यक है
  • ViewModel Jetpack से Activity के पुनर्निर्माण पर डेटा संरक्षित करता है, onSaveInstanceState में मैन्युअल सहेजने को बदलता है
  • Single Activity आर्किटेक्चर Navigation Component के साथ Google द्वारा Android परियोजनाओं के लिए अनुशंसित आधुनिक मानक है
  • launchMode कार्य स्टैक में Activity व्यवहार को नियंत्रित करता है: पृथक स्क्रीन के लिए standard से singleInstance तक

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें