Chào các bạn đang học và tìm hiểu về lập trình Android. Đây là blog đầu tiên của mình trong danh sách các blog chia sẻ kiến thức về Android . Các bạn có ý kiến đóng góp thì contact với mình qua mail or fb nhé <3
Chủ đề của blog hôm nay là tìm hiểu về vòng đời Activity và Vòng đời fragment.Chúng có gì giống và khác nhau. Cùng mình tìm hiểu nhé 💪💪💪
Đầu tiên chúng ta phải hiểu vòng đời là gì ? Là quá trình lặp lại theo trình tự nhất định các thay đổi mà một cá thể sinh vật phải trải qua bắt đầu từ khi được sinh ra cho đến các giai đoạn sinh trưởng, phát triển trở nên cơ thể trưởng thành, có thể sinh sản, rồi chết .
👉👉👉 Đó là vòng đời sinh học :v
Oke .Không linh tinh nữa thì vòng đời trong lập trình android là gì ?
- Đơn giản thôi vòng đời được định nghĩa là các giai đoạn xảy ra trong thời gian mà Activity hoặc Fragment bắt đầu cho đến khi nó bị hủy.
Cụ thể là khi người dùng điều hướng qua lại giữa các màn hình trong ứng dụng thì các Activity sẽ trải qua các trạng thái cụ thể khác nhau. Lớp Activity cung cấp cho chúng ta các hàm callback cho biết rằng trạng thái Activity đã bị thay đổi như đang tạo , đang chạy, đang phá hủy .. v..v Với các phương thức callback được cung cấp chúng ta có thể triển khai code trong màn hình của mình khi nó rơi vào các trạng thái xác định. Việc triển khai code đúng và xử lý các trường hợp sẽ giúp trải nghiệm người dùng tốt hơn và tránh các vấn đề về crash app, tốn tài nguyên không được giải phóng, mất dữ liệu khi người dùng rời app sau đó quay lại ... v.v
Và đây là hình ảnh về vòng đời của Activiy
onCreate()
Callback đầu tiên trong vòng đời Activity là onCreate(). Chúng ta phải triển khai callback này, callback này sẽ kích hoạt khi hệ thống tạo activity lần đầu. Ở đây chúng ta sẽ thực hiện viết các logic ứng dụng cơ bản của ứng dụng mà chỉ sảy ra 1 lần trong toàn bộ vòng đời của Activiy như set view cho Activty hàm setContentView(), sự kiện các view....
onStart()
Khi activity rơi vào trạng thái bắt đầu thì callback này sẽ được gọi. Callback này làm cho Activity của chúng ta có thể nhìn thấy được nhưng ko thể tương tác được. Có thể nói ở callback này activity đang chuẩn bị giao diện để hiển thị lên màn hình .
Phương thức onStart () hoàn thành khá nhanh.Khi kết thúc, Activity sẽ chuyển sang trạng thái reseum. Ví dụ ở callback này chúng ta có thể đăng ký BroadcastReceiver để chú ý đến những thay đổi ảnh hưởng đến giao diện người dùng.
onResume()
Đây là trạng thái khi ứng dụng tương tác với người dùng. Ứng dụng vẫn ở trạng thái này cho đến khi có điều gì đó xảy ra làm mất tiêu điểm của ứng dụng. Chẳng hạn như nhận cuộc gọi điện thoại, người dùng điều hướng đến một hoạt động khác hoặc màn hình thiết bị đang tắt
Khi một sự kiện gián đoạn xảy ra, Activity sẽ chuyển sang trạng thái Tạm dừng.
onPaused()
Hệ thống gọi lệnh gọi lại này là dấu hiệu đầu tiên cho thấy người dùng đang rời khỏi hoạt động của chúng tôi nhưng không phải lúc nào hoạt động đó cũng bị hủy, nó chỉ ra rằng hoạt động không còn ở nền trước mặc dù vẫn có thể hiển thị nếu người dùng chế độ nhiều cửa sổ. Sử dụng lệnh gọi lại này để tạm dừng hoặc điều chỉnh các hoạt động không nên tiếp tục trong khi hoạt động ở trạng thái Tạm dừng và bạn dự kiến sẽ tiếp tục ngay sau đó.. Có một số lý do khiến một Activity có thể đi vào trạng thái này,
ví dụ: Một số sự kiện làm gián đoạn quá trình thực thi ứng dụng Trong Android 7.0 (API cấp 24) trở lên, nhiều ứng dụng chạy ở chế độ nhiều cửa sổ. Vì chỉ một trong các ứng dụng (cửa sổ) có tiêu điểm bất kỳ lúc nào, hệ thống sẽ tạm dừng tất cả các ứng dụng khác. Một hoạt động nửa trong suốt mới, như hộp thoại, sẽ mở ra. Miễn là hoạt động vẫn hiển thị một phần nhưng không có tiêu điểm, hoạt động đó vẫn bị tạm dừng.
onStop()
Khi hoạt động của bạn không còn hiển thị với người dùng, tức là đã chuyển sang trạng thái Đã dừng và hệ thống sẽ gọi lại onStop (). Điều này xảy ra khi ví dụ, khi một hoạt động mới khởi chạy bao phủ toàn bộ màn hình. Hệ thống cũng có thể gọi onStop () khi hoạt động đã chạy xong và sắp kết thúc.
onDestroy()
- Cuộc gọi lại này được gọi trước khi hoạt động bị hủy. Hệ thống gọi lệnh gọi lại này bởi vì: Hoạt động đang kết thúc (do người dùng loại bỏ hoàn toàn hoạt động hoặc do hàm finish() được gọi đối với hoạt động hoặc Hệ thống đang tạm thời hủy hoạt động do thay đổi cấu hình chẳng hạn như xoay thiết bị hoặc chế độ nhiều cửa sổ.
onRestart()
Lệnh gọi lại này được gọi khi hoạt động đã thông qua onStop () nhưng sẽ được kích hoạt lại. Lệnh gọi lại này hiếm khi được triển khai.
Đó là Vòng đời Activity. Còn về Vòng đời fragment thì sao?
Fragment là một phần của hành vi giao diện người dùng của ứng dụng được đặt trong Activity. Trong cốt lõi của nó, nó đại diện cho một hoạt động hoặc giao diện cụ thể đang chạy trong một Hoạt động lớn hơn. Một Fragment gắn chặt với Hoạt động mà nó đang có và không thể được sử dụng ngoài một Fragment. Mặc dù Fragment xác định vòng đời của chính nó, vòng đời của nó vẫn phụ thuộc vào hoạt động của nó. Nếu hoạt động bị dừng, không có mảnh nào bên trong nó có thể được bắt đầu, khi hoạt động bị phá hủy, tất cả các mảnh sẽ bị phá hủy. Mặc dù vòng đời của Fragment gắn liền với hoạt động riêng của nó, nó có nếp nhăn riêng đối với vòng đời hoạt động tiêu chuẩn. Nó bao gồm các phương thức vòng đời hoạt động cơ bản như onResume (), nhưng cũng quan trọng là các phương thức liên quan đến tương tác với hoạt động và tạo giao diện người dùng. Và đây, là các trạng thái của Vòng đời Fragment.
onAttach(Activity)
onCreate(Bundle)
Gọi lại này được gọi để thực hiện việc tạo ban đầu của fragment.
Nhận xét
Đăng nhận xét