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 ختم ہو جاتی ہے اور پچھلی بحال ہو جاتی ہے۔ نظام خود بخود ڈھیر کا انتظام کرتا ہے، لیکن ڈویلپر 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 کا جدید نقطہ نظر — ایک Activity اور متعدد Fragments کے ساتھ Single Activity آرکیٹیکچر ہے۔ ایپلیکیشن ایک 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 میں دستی محفوظ کرنے کی جگہ لیتا ہے
  • Navigation Component کے ساتھ Single Activity آرکیٹیکچر Google کے ذریعے Android پروجیکٹس کے لیے تجویز کردہ جدید معیار ہے
  • launchMode کاموں کے ڈھیر میں Activity کے رویے کو کنٹرول کرتا ہے: معیاری سے الگ تھلگ اسکرینوں کے لیے singleInstance تک

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں