2013-05-23 26 views
22

Tôi muốn bắt đầu Hoạt động (Hoạt động SECOND) từ Hoạt động khác (Hoạt động đầu tiên) bằng cách gọi startActivity(intent). Trước khi tôi thực sự làm điều đó, tôi thấy người ta nói rằng các phương pháp này được gọi là vòng đời theo thứ tự sau:Android - Trong khi chuyển đổi giữa hai hoạt động, thứ tự gọi vòng đời của hoạt động

FIRST Activity onCreate 
FIRST Activity onStart 
FIRST Activity onResume 
FIRST Activity onPause 
SECOND Activity onCreate 
SECOND Activity onStart 
SECOND Activity onResume 
FIRST Activity onStop 

SECOND Activity onResume luôn gọi trước khi FIRST Acitivity onStop? Tôi nghĩ

FIRST Activity onPause 
FIRST Activity onStop 
SECOND Activity onCreate 
SECOND Activity onStart 
SECOND Activity onResume 

sẽ được gọi, nhưng có vẻ như không.

Ngoài ra, nếu tôi chỉ chuyển qua lại giữa hai hoạt động,

FIRST Activity onPause 
SECOND Activity onRestart 
SECOND Activity onStart 
SECOND Activity onResume 
FIRST Activity onStop 

Là những phương pháp luôn được gọi theo thứ tự này?

Trả lời

28

Theo tài liệu, SECOND.onResume() là nghĩa vụ phải được gọi trước khi FIRST.onStop() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa (Phối hợp hoạt động phần)

+0

Oh, đã có một tài liệu cho nó. – Naetmul

+0

Nhưng lưu ý, một số phương pháp có thể không bao giờ được gọi là 'onStop()'. Đọc tài liệu của từng phương pháp cẩn thận trước khi triển khai mã của bạn. – OneWorld

+0

@OneWorld Bạn có bất kỳ nguồn nào cho điều đó không? Tôi không thể tìm thấy bất cứ nơi nào nói rằng 'onStop()' có thể không bao giờ được gọi. Tôi biết rằng 'onDestroy()' sẽ không được gọi nếu tiến trình ở chế độ nền và hệ thống quyết định giết nó mà không cần gọi tất cả các phương thức, nhưng không thể tìm thấy bất kỳ câu lệnh nào như vậy về 'onStop()'. – Thorbear

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