onAttach()

Callback này được gọi khá sớm, ngay khi Activity chứa nó được kích hoạt. Hoặc ngay khi được gắn vào Activity.

Callback này được gọi một lần duy nhất trong vòng đời Fragment. Và ở giai đoạn này Fragment đã “nhận biết” được Activity chứa nó rồi, nên bạn có thể tận dụng để kiểm tra sớm một số điều kiện nào đó như các dòng code ở FirstFragment chúng ta đã từng làm.

Ví dụ callback onAttach() của Fragment

onCreate()

Callback này được gọi khi Fragment bắt đầu khởi tạo từ các dữ liệu đầu vào.

Khác với onCreate() của Activity, rằng bạn có thể tạo giao diện cho màn hình ở callback này, thì với Fragment chúng ta còn phải đợi qua callback tiếp theo mới có thể tạo giao diện được.

Callback này cũng được gọi một lần trong đời sống Fragment. Nên thường tận dụng để lấy dữ liệu từ bên ngoài truyền vào như ở SecondFragment chúng ta có làm quen.

Ví dụ callback onCreate() của Fragment

onCreateView()

Khi Fragment bắt đầu vẽ UI lên màn hình, callback này được gọi. Nên chúng ta sẽ tận dụng callback này cho các thiết lập về giao diện.

Bạn thấy rằng, theo như sơ đồ trên, thì callback này sẽ được gọi lại khi mà Fragment được gỡ ra khỏi Activity nhưng được đưa vào Back Stack, và được gọi lại hiển thị sau đó.

Khi kết thúc callback này, hãy nhớ return một View như những gì bạn đã thử nghiệm với FirstFragmentSecondFragment. Lưu ý là chúng ta hoàn toàn có thể return null nếu Fragment không có UI.

Ví dụ callback onCreateView() của Fragment

onActivityCreated()

Callback này được gọi ngay sau khi onCreateView() được gọi. Nó báo hiệu trạng thái Activity chứa nó được khởi tạo hoàn toàn. Tuy ít được sử dụng hơn các callback khác, nhưng bạn cũng có thể tận dụng nó để thay đổi giao diện hay các tương tác với Activity chứa Fragment này thoải mái được rồi.

onStart()

Khi Fragment bắt đầu được nhìn thấy bởi người dùng và chuẩn bị nhận tương tác.

onResume()

Người dùng hoàn toàn nhìn thấy và tương tác được với Fragment.

onPause()

Callback này như một dấu hiệu cho thấy rằng người dùng đang rời khỏi Fragment hiện tại. Mặc dù không phải lúc nào onPause() được gọi là người dùng sẽ bái bai Fragment này. Nhưng bạn nên sao lưu các dữ liệu cần thiết của Fragment ở callback này, nhỡ đâu người dùng thực sự rời đi không quay lại thì sao.

onStop()

Fragment chính thức không còn được nhìn thấy nữa.

onDestroyView()

Chắc chắn là đối tượng View sẽ bị hủy ở callback này. Và do đó các khởi tạo view của bạn ở onCreateView() sẽ nhanh chóng không còn nữa.

Nếu như Fragment được đưa vào Back Stack, thì khi được lấy ra lại sau đó, callback onCreateView() sẽ được gọi lại.

onDestroy()

Fragment đã sắp “chết”. Nhưng khác với Activity, khi onDestroy() của Activity được gọi thì xem như Activity đã đến “cuối đời”. Còn với Fragment, callback này chỉ như một lời “nhắc nhở” về vận mệnh của Fragment mà thôi.

onDetach()

Callback này gọi đến báo hiệu Fragment sẽ được gỡ khỏi Activity đang chứa nó. Kết thúc vòng đời của Fragment.

Chúng ta vừa xem qua một kiến thức về quản lý Fragment, bởi hệ thống. Thông qua đây bạn được hiểu rõ hơn về các callback và cách sử dụng chúng trong các logic của Fragment sau này.

Cảm ơn bạn đã đọc các bài viết của Yellow Code Books. Bạn hãy ủng hộ blog bằng cách:

Đánh giá 5 sao bên dưới mỗi bài nếu thấy thích.
Comment bên dưới mỗi bài nếu có thắc mắc.
Để lại địa chỉ email của bạn ở thanh bên phải để nhận được thông báo sớm nhất khi có bài viết mới.
Chia sẻ các bài viết của Yellow Code Books đến nhiều người khác.

Bài Kế Tiếp

Bài sau chúng ta sẽ nói tiếp một kiến thức nhỏ nữa về Fragment, đó là các thể loại Fragment bên trong Android mà bạn có thể sử dụng. Và sẽ cùng xây dựng Fragment cụ thể cho TourNote.