Perbedaan antara Aktivitas dan FragmentActivity

228

Saya sedang mengerjakan fragmen dan menemukan dua hal Activitydan FragmentActivityyang digunakan beberapa kali. Saya ingin tahu apakah ada perbedaan antara keduanya, karena ketika saya berganti Activitydengan FragmentActivity, itu tidak berpengaruh pada aplikasi.

Calon
sumber

Jawaban:

316

A FragmentActivityadalah subkelas dari Activityyang dibuat untuk Paket Dukungan Android .

The FragmentActivitykelas menambahkan beberapa metode baru untuk memastikan kompatibilitas dengan versi Android, tapi selain itu, sebenarnya tidak ada banyak perbedaan antara keduanya. Pastikan Anda mengubah semua panggilan ke getLoaderManager()dan getFragmentManager()ke getSupportLoaderManager()dan getSupportFragmentManager()masing - masing.

Alex Lockwood
sumber
4
Hai, saya tidak mengubah panggilan ke getSupportLoaderManager () dan getSupportFragmentManager () .. tapi masih berfungsi dengan baik.
Rookie
31
Itulah yang membuatnya sangat berbahaya: P. FragmentActivitymewarisi getLoaderManagerdan getFragmentManagermetode dari Activitydan sebagai hasilnya kompiler tidak akan mengeluh. Kemungkinan Anda mengimpor kelas yang salah LoaderManagerdan FragmentManagerjuga. Pastikan Anda mengimpor kelas-kelas ini dari paket dukungan ( android.support.v4.app), bukan Android SDK ( android.app).
Alex Lockwood
1
Bisakah kita mengatakan bahwa jika kita ingin menggunakan fragmen untuk versi 2.x android kita perlu menggunakan FragmentActivity nad untuk versi yang mendukung fragmen kita perlu menggunakan Activity.
Rookie
55
Saya pikir apa yang Anda katakan itu benar. Tetapi hanya untuk menjadi 100% jelas ... gunakan Activityjika Anda menggunakan android.app.Fragment; gunakan FragmentActivityjika Anda menggunakan android.support.v4.app.Fragment. Jangan pernah menempelkan a android.support.v4.app.Fragmentke android.app.Activity, karena ini akan menyebabkan eksepsi dilemparkan.
Alex Lockwood
13
Pertama-tama coba tutorial ini (cara menggunakan Fragmentsaplikasi). Kemudian, lanjutkan ke tutorial ini (cara memanfaatkan Fragments dari paket dukungan). The dokumentasi di situs pengembang bernilai membaca juga.
Alex Lockwood
4

FragmentActivityadalah bagian dari pustaka dukungan , sedangkan Activitykelas default kerangka kerja. Mereka setara secara fungsional.

Anda harus selalu menggunakan FragmentActivitydan android.support.v4.app.Fragmentbukannya standar platform Activitydan android.app.Fragmentkelas. Menggunakan platform default berarti Anda mengandalkan implementasi fragmen apa pun yang digunakan pada perangkat yang Anda jalankan. Ini sering berulang tahun, dan mengandung bug yang telah diperbaiki di perpustakaan dukungan.

Samuel Peter
sumber
1
Catatan: minSdkVersionpustaka dukungan adalah 14 sejak versi 26.xx
Eugen Pechanec