Khác nhau giữa Activity và Fragment trong Android

Bài viết dưới đây tổng hợp ý kiến bản thân về sự khác nhau giữa Activity và Fragment trong Android của cá nhân mình

Vài điểm khác biệt

Tiêu chí Activity Fragment
Vị trí đối với ứng dụng Activity là hoạt động,cửa số chính,tồn tại độc lập Fragment là một phần của Activity Đóng góp UI và hoạt động của nó vào thành phần chính
Vị trí tương đối với nhau Activity có thể chứa nhiều Fragment Fragment là một phần của Activity
Tái hoạt động Không thể tái hoạt động Một fragment có thể được tái sử dụng trong một activity,do đó nó hoạt động như một thành phần tái sử dụng trong các hoạt động.
Vòng đời
Tư tưởng hình thành Các hoạt động là một trong những khối xây dựng cơ bản của ứng dụng trên nền tảng Android. Chúng đóng vai trò là điểm vào cho sự tương tác của người dùng với một ứng dụng và cũng là trung tâm cho cách người dùng điều hướng trong ứng dụng hoặc giữa các ứng dụng Fragment đại diện cho một hành vi hoặc một phần của giao diện người dùng trong một hoạt động. Bạn có thể kết hợp nhiều fragment trong một hoạt động để xây dựng giao diện đa cửa sổ và sử dụng lại một đoạn trong nhiều hoạt động. Bạn có thể nghĩ ra một đoạn như một phần mô đun của một hoạt động, có vòng đời riêng của nó, nhận các sự kiện đầu vào của chính nó, và bạn có thể thêm hoặc xoá trong khi hoạt động đang chạy.
Tổ chức vòng đời Các phương pháp vòng đời được tổ chức bởi hệ điều hành (OS). Phương pháp vòng đời được tổ chức bởi tổ chức bởi hoạt động lưu trữ( hosting activity)

Fragment có tốt hơn ?

Vậy tóm lại,lợi ích khi sử dụng fragment là gì ?

  • tính modun hóa cao .
  • Quản lý tốt hơn vòng đời của đoạn.
  • Có thể tái sử dụng trong các hoạt động khác.
  • Việc giải phóng dữ liệu nhanh gọn,dễ dàng,đỡ tốn bộ nhớ hơn.
  • Xử lý logic linh hoạt hơn : thử nghĩ trước đây,nếu không có fragment,khi chuyển dữ liệu giữa các màn hình,ta gặp một trở ngại về logic lớn,thế nhưng khi có fragment,mọi việc đã trở nên dễ dàng hơn . Bằng cách làm cho từng màn hình thành các fragment riêng biệt, việc chuyển dữ liệu chuyển nhức đầu này là hoàn toàn tránh được.Fragment luôn tồn tại trong Activity nhất định và luôn có thể truy cập vào Activity đó. Bằng cách lưu trữ thông tin quan tâm trong Activity, Fragment cho mỗi màn hình chỉ có thể truy cập đối tượng tham chiếu thông qua Activity - mọi việc đơn giản hơn rồi nhỉ 😃 .

Hạn chế của Fragment ?

*Chúng ta phải viết thêm khá nhiều code (ví dụ : fragment manager, thêm fragment transaction, viết các phương thức callback cho fragment)

  • xử lý logic cho các thành phần phức tạp hơn nhiều lần

Tổng kết

Việc sử dụng fragment cho activity là một sự lựa chọn mang lại cho ứng dụng một sự linh hoạt,tiết kiệm tài nguyên hiệu quả so với sử dụng Activity Sự kết hợp của fragment và viewpager cung cấp khả năng phân trang linh hoạt.

Bài viết là quan điểm cá nhân,chắc chắn có sai sót,mong nhận được sự góp ý thêm của mọi người