Activity در مقابل Fragment
Activity یک صفحه یا نقطه ورود مستقل با چرخهحیات خاص خودش در سیستمعامل اندروید است که معمولاً کل صفحه را پوشش میدهد؛ Fragment یک بخش قابلاستفادهمجدد از UI و رفتار است که باید همیشه درون یک Activity (یا Fragment دیگر) میزبانی شود و چرخهحیات آن به میزبانش وابسته است.
| ویژگی | Activity | Fragment |
|---|---|---|
| استقلال | مستقل و ثبتشده در Manifest | وابسته به یک Activity میزبان |
| چرخهحیات | مستقل | وابسته به چرخهحیات میزبان |
| قابلیت استفاده مجدد | کم | بالا (در چند صفحه/layout) |
| کاربرد رایج امروزی | نقطه ورود اصلی اپ (تک یا چند عدد) | واحد ساخت UI درون معماری Single-Activity |
کِی از Activity استفاده کنیم؟
برای تعریف یک صفحه یا نقطه ورود مستقل جدید در اپلیکیشن (مثلاً صفحه ورود، صفحه اصلی) که باید در Manifest ثبت شود، از Activity استفاده کنید.
کِی از Fragment استفاده کنیم؟
برای ساخت رابط کاربری قابلاستفادهمجدد در چند صفحه، پیادهسازی layout های واکنشگرا (مثل master-detail در تبلت) یا کار با Navigation Component بین چند تب، از Fragment استفاده کنید.
مثال Activity
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
}
}
مثال Fragment
class ProfileFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.fragment_profile, container, false)
}
اشتباه رایج
امروزه ساخت اپلیکیشنهای تک-Activity با چندین Fragment (Single-Activity Architecture) استاندارد است، اما توسعهدهندگان تازهکار هنوز برای هر صفحه یک Activity جدید میسازند که مدیریت navigation و اشتراک state بین صفحات را دشوارتر و پرهزینهتر میکند.
جمعبندی
امروزه معمولاً یک Activity میزبان و چند Fragment برای صفحات داخلی — نه یک Activity به ازای هر صفحه.
