اکتیویتی ها در اندروید
یکی از مهمترین مفاهیم در توسعه اپلیکیشنهای اندرویدی، مفهوم Activity یا اکتیویتی است. تقریباً هر برنامه اندرویدی از چندین Activity تشکیل شده و کاربران هنگام کار با اپلیکیشن دائماً بین آنها جابهجا میشوند.
اگر بخواهیم ساده توضیح دهیم، هر صفحهای که کاربر در یک اپلیکیشن اندروید مشاهده میکند معمولاً یک Activity است. برای مثال:
- صفحه ورود
- صفحه تنظیمات
- صفحه پروفایل
- صفحه جزئیات محصول
همگی میتوانند Activity باشند.
در این مقاله، بهصورت کامل با Activity در برنامه نویسی اندروید آشنا میشویم، چرخه حیات آن را بررسی میکنیم و مثالهای عملی خواهیم دید.
Activity چیست؟
در Android، Activity یکی از اصلیترین Componentهای برنامه است که وظیفه مدیریت رابط کاربری و تعامل با کاربر را بر عهده دارد.
هر Activity:
- یک صفحه مستقل محسوب میشود
- Lifecycle مخصوص خود را دارد
- میتواند شامل Viewها و Fragmentها باشد
نقش Activity در اپلیکیشن
Activity:
- رابط کاربری را نمایش میدهد
- ورودی کاربر را مدیریت میکند
- با ViewModel و Data ارتباط برقرار میکند
- صفحات مختلف برنامه را کنترل میکند
ساخت اولین Activity
در Android Studio هنگام ساخت پروژه، معمولاً یک Activity پیشفرض ایجاد میشود.
مثال ساده Activity
class MainActivity : AppCompatActivity() {
override fun onCreate(
savedInstanceState: Bundle?
) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
توضیح بخشهای مهم
AppCompatActivity
کلاس پایه Activityهای مدرن اندروید است.
onCreate
اولین متدی است که هنگام ایجاد Activity اجرا میشود.
setContentView
Layout مربوط به Activity را نمایش میدهد.
Lifecycle اکتیویتی چیست؟
یکی از مهمترین مفاهیم اندروید:
چرخه حیات Activity (Activity Lifecycle)
است.
سیستمعامل اندروید Activityها را بر اساس وضعیت برنامه مدیریت میکند.

متدهای اصلی Lifecycle
1️⃣ onCreate()
زمان ایجاد اولیه Activity.
override fun onCreate(
savedInstanceState: Bundle?
)
2️⃣ onStart()
زمانی که Activity قابل مشاهده میشود.
3️⃣ onResume()
زمانی که کاربر میتواند با Activity تعامل کند.
4️⃣ onPause()
وقتی Activity بخشی از فوکوس را از دست میدهد.
مثلاً:
- نمایش Dialog
- باز شدن Activity دیگر
5️⃣ onStop()
وقتی Activity دیگر دیده نمیشود.
6️⃣ onDestroy()
قبل از حذف Activity از حافظه.
چرخه حیات Activity بهصورت ساده
onCreate()
↓
onStart()
↓
onResume()
↓
[Activity Running]
↓
onPause()
↓
onStop()
↓
onDestroy()
چرا Lifecycle مهم است؟
اگر Lifecycle را اشتباه مدیریت کنید:
- Memory Leak ایجاد میشود
- مصرف RAM بالا میرود
- برنامه کرش میکند
انتقال بین Activityها
برای جابهجایی بین صفحات از:
- Intent
استفاده میشود.
مثال انتقال به Activity دیگر
val intent =
Intent(this, DetailActivity::class.java)
startActivity(intent)
ارسال داده بین Activityها
ارسال داده
intent.putExtra("name", "Ali")
دریافت داده
val name =
intent.getStringExtra("name")
ثبت Activity در Manifest
هر Activity باید داخل:
AndroidManifest.xml
ثبت شود.
مثال:
<activity
android:name=".DetailActivity"/>
تفاوت Activity و Fragment
| Activity | Fragment |
|---|---|
| صفحه کامل | بخشی از صفحه |
| Lifecycle مستقل | وابسته به Activity |
| سنگینتر | سبکتر |
بهترین روش مدرن چیست؟
امروزه معمولاً:
- یک Activity
- چند Fragment
استفاده میشود.
یا در:
Jetpack Compose
از Navigation Compose استفاده میشود.
مدیریت State در Activity
برای جلوگیری از از دست رفتن دادهها هنگام:
- چرخش صفحه
- تغییر Configuration
معمولاً از:
- ViewModel
- SavedStateHandle
استفاده میشود.
استفاده از ViewModel داخل Activity
private val vm: MainViewModel
by viewModels()
اجرای عملیات Async در Activity
برای عملیات غیرهمزمان:
lifecycleScope.launch {
}
چرا lifecycleScope مهم است؟
Coroutineها با Lifecycle هماهنگ میشوند.
مدیریت Memory Leak در Activity
اشتباه رایج ❌
نگه داشتن Reference به Activity داخل Singleton.
راهحل ✅
استفاده از:
- ApplicationContext
- WeakReference
ذخیره وضعیت Activity
onSaveInstanceState
override fun onSaveInstanceState(
outState: Bundle
)
استفاده از Toolbar در Activity
setSupportActionBar(toolbar)
بازگشت به Activity قبلی
finish()
Activity در Jetpack Compose
در Compose معمولاً Activity فقط Host است.
مثال:
setContent {
MyApp()
}
بهترین روشها در استفاده از Activity
✅ Activityها را سبک نگه دارید
منطق اصلی داخل:
- ViewModel
- Repository
باشد.
✅ Lifecycle را مدیریت کنید
✅ از ViewBinding استفاده کنید
✅ عملیات سنگین روی Main Thread اجرا نکنید
اشتباهات رایج
❌ نوشتن Business Logic داخل Activity
❌ عدم مدیریت Lifecycle
❌ استفاده زیاد از چندین Activity
آینده Activity در اندروید
با ظهور:
- Fragment
- Compose
- Navigation Component
نقش Activity کمتر شده، اما همچنان بخش مهمی از سیستم اندروید است.
جمعبندی
Activity یکی از اساسیترین Componentهای Android است که مدیریت صفحات و تعامل با کاربر را بر عهده دارد.
در این مقاله یاد گرفتیم:
- Activity چیست
- Lifecycle چگونه کار میکند
- چگونه بین Activityها جابهجا شویم
- چگونه داده ارسال کنیم
- و بهترین روشهای استفاده از Activity چیست
اگر قصد دارید برنامهنویسی اندروید را حرفهای یاد بگیرید، درک کامل Activity و Lifecycle کاملاً ضروری است.