Vòng đời của một ứng dụng Android

cơ bản-hướng dẫn-lập trình-android-2

Khi bạn bắt đầu lập trình bằng một ngôn ngữ như C ++ hoặc Java, điều đầu tiên được dạy là phương thức chính, điểm mà hệ điều hành sẽ gọi khi chúng ta khởi động ứng dụng của mình.

Trong Android không có phương thức chính nào như vậy, nhưng có một số phương thức hoạt động của chúng tôi sẽ được gọi bởi SSOO khi chúng xảy ra sự kiện quan trọng. Trong chương này, chúng ta sẽ đi sâu nghiên cứu những sự kiện đó là gì và nó hoạt động như thế nào. chu kỳ hoàn chỉnh của một hoạt động của Android. Tài liệu chính thức đưa ra lời giải thích sâu rộng về chủ đề này, ở đây chúng ta sẽ nghiên cứu những yếu tố quan trọng nhất cùng với một số lỗi thường gặp khi xử lý chúng.

Vòng đời của Android tuân theo sơ đồ sau:

vòng đời android

Sự kiện vòng đời

  1. onCreate (Gói)
    • Đại diện cho thời điểm khi hoạt động được tạo ra. Phương thức này thường sẽ được tạo bởi trình hướng dẫn khi tạo một hoạt động mới trên Android và đó là nơi chúng tôi sẽ tạo mọi thứ mà hoạt động sẽ cần. Nếu trước đó chúng tôi đã lưu dữ liệu hoạt động trong một đối tượng Bundle, chúng tôi có thể sử dụng nó để tạo lại nó. Thông thường chúng tôi sẽ không sử dụng nó.
  2. băt đâu()
    • Hoạt động sẽ tiếp tục ở trên màn hình, mặc dù không nhất thiết phải nhìn thấy. Nếu chúng ta đến từ một điểm dừng, chúng ta sẽ đi qua onRestart () trước.
  3. onRestart ()
    • Trước onStart () khi chúng ta đến từ một cuộc gọi đến onStop ().
  4. onResume ()
    • Hoạt động sẽ bắt đầu trả lời tương tác người dùng.
  5. onPause ()
    • Hoạt động sẽ ngừng trả lời đến tương tác của người dùng.
  6. dừng lại()
    • Hoạt động đã hoàn toàn chuyển sang lý lịch.
  7. onDestroy ()
    • Hoạt động nó sẽ bị phá hủy và tài nguyên của bạn được phát hành.

Khi chúng tôi cần triển khai một trong các phương pháp này, chúng tôi sẽ thực hiện nó để thêm vào hoạt động của chúng tôi với các cấu hình sau:

public class MyActivity mở rộng Activity {protected void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); ...} void onStart () {super.onStart (); ...} void onRestart () {super.onRestart (); ...} void onResume () {super.onResume () được bảo vệ; ...} void onPause () được bảo vệ {... super.onPause (); } void onStop () {... onStop (); } void onDestroy () {... super.onDestroy () được bảo vệ; }}

Điều quan trọng là phải duy trì cuộc gọi phương thức siêu lớp để không gặp bất ngờ. Các nhiệm vụ của mỗi sự kiện nằm trên hoạt động của chúng tôi phải được duy trì. Lời gọi này sẽ chuyển đến phần đầu của các sự kiện đầu vào và đến phần cuối của các sự kiện đầu ra. Bằng cách này, chúng ta sẽ tránh được những bất ngờ, vì các yếu tố của hoạt động mà chúng ta cần nhưng không nằm trong tầm kiểm soát của chúng ta sẽ được tạo ra trước khi sử dụng chúng và sẽ bị phá hủy sau đó.

Chúng tôi không phải thêm tất cả các sự kiện, những cái chúng tôi không cần sẽ sử dụng triển khai mặc định. Các phương pháp mà chúng tôi sẽ thường sử dụng - và không nên đụng đến các phương pháp khác - là onCreate, onPause và onRestart.

Ý nghĩa của onCreate rất rõ ràng: nó là nơi chúng ta sẽ tải các tài nguyên chúng ta cần, lượt xem và bất cứ thứ gì khác mà chúng ta cần. Đối với đầu ra, phương pháp duy nhất mà chúng tôi sẽ tập trung vào là onPause. Lý do để tránh onStop và onDestroy là chúng tôi không có bất kỳ quyền kiểm soát nào đối với chúng. onPause sẽ chạy bất cứ khi nào ứng dụng thoát ra khỏi nền trước, trong khi hai ứng dụng còn lại sẽ được chạy bởi hệ điều hành dựa trên nhu cầu của bạn. Họ có thể không bao giờ bị xử tử! Điều này được thực hiện để tránh chi phí tạo hoạt động lặp đi lặp lại nếu chúng ta chuyển từ hoạt động sang máy tính để bàn và ngược lại, và hệ điều hành sẽ chỉ giải phóng tài nguyên được sử dụng nếu nó cần, và nó không phải tham gia tất cả các quy trình mở.

Điều đó ngụ ý rằng chúng tôi sẽ giả định rằng ứng dụng sẽ chết sau khi thực hiện onPause và nó là của chúng tôi cơ hội cuối cùng để cứu dữ liệu mà chúng tôi cần lưu và dừng các dịch vụ mà chúng tôi đang sử dụng, chẳng hạn như định vị địa lý. Nếu chúng tôi đã dừng các dịch vụ, nơi thích hợp để khởi động lại chúng là onRestart.

Các phương pháp khác chúng ta sẽ không cần sử dụng nhiều. Một trường hợp phổ biến mà chúng ta sẽ cần đến nó là khi chúng ta tích hợp các thư viện của bên thứ ba, chẳng hạn như Facebook hoặc Flurry. Trong những trường hợp này, chúng tôi sẽ được yêu cầu đối sánh các phương pháp hoạt động của chúng tôi với mã của bạn. Ví dụ, để đăng ký một phiên Flurry, chúng tôi sẽ được yêu cầu bắt đầu phiên trong phương thức onStart.

Một số ý tưởng hữu ích

  • Hãy nhớ mỗi sự kiện nhằm mục đích gì. Bạn sẽ luôn cần onCreate, và khá thường xuyên, bạn sẽ cần onPause và onResume để dừng và khởi chạy lại các dịch vụ tiêu thụ nhiều nhất.
  • Đừng chạm vào các sự kiện khác nếu bạn không cần nó một cách rõ ràng.
  • Đừng tin tưởng onStop và onDestroy, họ có thể không bao giờ được gọi. Lưu mọi thứ bạn cần trong onPause.
  • Tránh sử dụng các biến tĩnh không phải cuối cùng. Ứng dụng vẫn có thể được tải khi bạn quay lại và chúng sẽ giữ nguyên các giá trị đã để lại. Nếu bạn không có lựa chọn nào khác ngoài việc sử dụng chúng, hãy đảm bảo đặt lại giá trị của chúng khi bạn quay lại nền trước.

Thêm thông tin - Hướng dẫn cơ bản để lập trình trong Android


Bạn quan tâm đến:
Cách loại bỏ vi rút trên Android
Theo dõi chúng tôi trên Google Tin tức

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Blog Actualidad
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.