Bài 5: Activity và vòng đời của nó trong Android

Bây giờ là bài viết mà bạn sẽ chính thức đi vào lập trình Android bởi vì tới bài viết này chúng ta đã bắt tay vào Code rồi chứ không còn những thao tác đơn giản kia nữa.

Thì như các bạn đã từng dùng điện thoại đều chắc đã cài ứng dụng rồi đúng không nào? Ứng dụng nào cũng có nhiều màn hình khác nhau ví dụ như: mở app lần đầu lên là màn hình đăng nhập, nếu chưa đăng ký thì sẽ có màn hình đăng ký, rồi màn hình home… rất nhiều màn hình khác nhau, thế trong Android thì màn hình đó được hiểu như thế nào thì ta xem thử khái niệm Activity nhé.

Activity trong android là gì?

Activity là một thành phần của ứng dụng Android nó sẽ biểu diễn giao diện của một màn hình nào đó trong ứng dụng của bạn.Một ứng dụng có thể sẽ có nhiều màn hình và mỗi màn hình có thể là một Activity (chưa nói đến Fragment).

Mỗi Activity sẽ hoạt động độc lập với nhau nhưng có thể tương tác và truyển dữ liệu qua nhau.Vì hoạt động độc lập nên có sẽ có vòng đời riêng từ lúc được khởi tạo cho đến lúc được huỷ đi.

Bây giờ bạn thử tạo new một dự án mà bài trước mình đã có hướng dẫn để xem coi Activity nó được thiết lập và làm gì nhé, nhìn xuống ảnh phía dứới đây ha.

project-dau-tien-hoc-android

Project đầu tiên lập trình Android

Ở trên bạn sẽ thấy một class tên là MainActivity đúng không nào? Đây chính là một Activity đó, không phải là nó có chữ Activity đâu nhé cái tên do mình tự đặt thôi.

Thế nào là một Activity?

Một class được gọi là Activity khi nó extend (kế thừa) từ những class cha như : AppCompatActivity,  Activity, FragmentActivity… và nhìn trên ảnh bạn sẽ thấy một hàm tên là onCreate đúng không nào?

Đây là hàm bắt buộc phải có trong Activity bởi vì nó có nhiệm vụ là khởi tạo Activity đó lên và nó chỉ được khởi tạo một lần duy nhất trong 1 vòng đời của Activity, lưu ý là không có cũng chẳng bị lỗi gì nhé.Vì là chỉ khởi tạo một lần duy nhất nên nó thường là nơi vẽ ra giao diện của Activity.

Và rõ hơn hơn các bạn xem qua vòng đời của Activity nhé.

Vòng đời của một Activity  (Life cycle)

Vòng đời của một Activity Android

Vòng đời của một Activity Android

Chi tiết nó sẽ như thế này, mình viết như dạng kể chuyển cho dễ hiểu nhé:

Khi một Activity được khởi tạo nó sẽ gọi hàm OnCreate() đầu tiền, ở đây nó sẽ vẽ lên giao diện của màn hình đó lúc này giao diện vẫn chưa hiển thị ra đâu.Và tiếp sau đó nó sẽ gọi đến hàm OnStart(), lúc này giao diện đã được vẽ ra rồi và bạn có thể nhìn thấy được giao diện đó tuy nhiên vẫn chưa tương tác vào được, ví dụ như chưa click vào nút button ” Đăng ký ” chẳng hạn.

Tiếp đến nó sẽ gọi đến hàm OnResume() , ở đây thì giao diện đã được khởi tạo xong và người dùng đã có thể tương tác trên giao diện đó và lúc này nếu bạn thao tác gì làm ẩn Activity đi thì nó sẽ dừng ở đây, activity đang hoạt động.Lúc này sẽ có 2 trường hợp xảy ra tiếp theo:

Trường hợp 1 : Activity bị che mất 1 phần

Bây giờ, nếu như có một Activity khác đè lên trên Activity này và chỉ che khuất 1 phần nào đó thôi chứ không che khuất hoàn toàn, nghĩa là Activity đầu tiên bây giờ chúng ta không click hay làm gì được những vẫn thấy 1 phần có nó trên màn hình.Lúc này đây hàm onPause() sẽ được gọi .Và khi Activity vừa đè lên bị hủy bỏ hay xóa đi thì hàm OnResume() sẽ được gọi và bây giờ chúng ta có thể thao tác, click… được trên Activity này.

Trường hợp 2 : Activity bị che mất toàn phần

Nếu như có một cuộc gọi đến chẳng hạn thì giao diện cuộc gọi đến sẽ che mất màn hình của Activity này thì lúc này hàm OnPause() và gọi luôn hàm OnStop() ngay sa đó, nghĩa là Activity hiện tại bị che khuất hoàn toàn rồi nhé.Sa khi cuộc gọi kết thúc thì hàm OnRestart() sẽ được gọi, tiếp đến hàm OnStart()OnResume() cũng được gọi ngay sau đó luôn và bây giờ Activity lai quay về trạng thái hoạt động bình thường.

Một hàm cuối cùng đó là hàm OnDestroy(), hàm này sẽ được gọi khi bạn bấm nut back trên điện thoại để thoát ứng dụng hoặc tắt đi một màn hình activity nào đó.Sau khi hàm nay được gọi thì Activity đó sẽ bị hủy luôn nhé, không start lại được đâu.

Cơ bản vòng đời của một Activity chỉ có vậy thôi, mục đích của vòng đời này là giúp chúng ta có thể xử lí các sự kiện khi activity ở các trạng thái khác nhau.Ví dụ như ở màn hình A bạn có start một Broadcast Receiver (sẽ học ở phần nâng cao) lắng nghe trạng thái mạng của điện thoại ở hàm OnStart() thì nếu muốn tắt nó đi thì mình sẽ hủy nó ở hàm OnDestroy(), vì lúc này màn hình Activity này đã mất nên mình hủy nó luôn.

Cơ bản về vòng đời Activity nó chỉ như thế thôi, và gần cuối serie này bạn sẽ học về thằng Fragment nó cũng tương tự như Activity nhưng rất là hay luôn.

Và dưới đây là video và code vi dụ trong bài viết này nếu như bạn chưa hiểu có thể xem và tải về thực hành nhé.

Video giới thiệu về Activity và vòng đời trong Android

Tải source code

Chúc các bạn thành công!

Tiếp theo

Bài 5: Activity và vòng đời của nó trong Android
4.8 (96.67%) 6 votes

3 Comments

  1. Aru March 17, 2017
  2. Hiệp April 18, 2017
  3. Hay May 9, 2017

Add Comment

*