2013-04-17 28 views
6

Khi tôi mở một hoạt động, tôi biết rằng tôi có thể khởi tạo nội dung trong hàm onCreate.onCreate vs. onResume/onRestart bevhaviour về biến thành viên

Nhưng hành vi trên chức năng OnResume và onRestart là gì? Khi nào các chức năng này được gọi?

Cụ thể: Tôi khởi tạo biến thành viên cục bộ trong hàm onCreate auiqring tham chiếu đến đối tượng chung. Bây giờ, khi người dùng bị gián đoạn, ví dụ, bằng một cuộc gọi, hoạt động có thể được đóng lại. Sau đó, khi người dùng quay lại chế độ xem của tôi, trạng thái của biến đã được initiliazed là gì? Tôi có phải khởi động lại mọi thứ trong các chức năng onResume/onRestart không? Vì vậy, những gì sẽ là sự khác biệt chức năng trái ngược với onCreate?

Trả lời

6
  • onCreate: Hoạt động được khởi chạy lần đầu tiên. Đây là nơi bạn có thể khởi tạo công cụ của mình.
  • onResume: Người dùng quay trở lại hoạt động sau khi một hoạt động khác được đưa vào nền trước.()
  • onRestart: Người dùng điều hướng đến hoạt động sau khi hoạt động không còn hiển thị (onStop).

Bạn có thể xem toàn bộ vòng đời trên Activity documentation. Nội dung hoạt động của bạn sẽ chỉ bị mất khi số điện thoại onDestroy được gọi, điều này xảy ra khi bạn hoàn thành hoặc khi hệ thống bị phá hủy (ví dụ: khi ứng dụng có mức độ ưu tiên cao hơn cần bộ nhớ)

+0

Vì vậy onDestroy có nghĩa là ứng dụng đó vẫn bị giết và onCreate sẽ được gọi là lần tiếp theo ứng dụng phải khởi động lại, phải không? – Devolus

+1

Không nhất thiết, 'onDestroy' có nghĩa là' Hoạt động' bị hủy, như khi bạn quay lại hoạt động trước đó bằng nút quay lại, nhưng ứng dụng vẫn đang chạy. Nhưng có, một khi ứng dụng bị giết (hoặc 'Hoạt động' bị hủy), lần sau bạn mở nó,' onCreate' sẽ được gọi lại. – ssantos

+1

Lưu ý rằng OnResume cũng sẽ được gọi ngay sau khi OnCreate, theo sơ đồ tại đây https://developer.android.com/guide/components/activities/activity-lifecycle.html#alc –

1

Giả sử một cuộc đối thoại được bắt đầu từ hoạt động hiện tại của bạn, cửa sổ chính (Hoạt động) sẽ chuyển sang trạng thái onPause. Khi bạn buộc hoạt động ở chế độ nền (Giả sử bạn nhấn nút trang chủ) Hoạt động sẽ chuyển sang trạng thái onPause.

Các vấn đề liên quan