Nếu hoạt động A bắt đầu hoạt động B cho kết quả, tôi đã ấn tượng rằng phương thức hoạt động của onStop B được gọi trước phương thức hoạt động onActivityResult A. Tại sao lại không như vậy? Tôi chỉ thử nghiệm nó với một biến tĩnh được thiết lập trong B.onStop
nhưng khi tôi đọc nó trong A.onActivityResult
biến là cho đến khi null.vòng đời android onActivityResult vs onStop
Trả lời
Tôi nghĩ điều bạn muốn làm là gọi số , tuy nhiên, bạn không muốn làm quá nhiều ở đó. Here is what the docs say:
protected void onPause() Thêm mực API 1
gọi như là một phần của vòng đời hoạt động khi một hoạt động đang diễn ra vào nền, nhưng đã không (chưa) bị giết. Các đối tác để onResume().
Khi hoạt động B được khởi chạy trước hoạt động A, gọi lại này sẽ được gọi trên A. B sẽ không được tạo cho đến khi OnPause() trả về, vì vậy đảm bảo không làm gì dài ở đây.
callback này chủ yếu sử dụng để lưu bất cứ tiểu bang dai dẳng hoạt động được chỉnh sửa, để trình bày một "chỉnh sửa tại chỗ" mô hình để người dùng và đảm bảo không có gì bị mất nếu không có đủ nguồn lực để bắt đầu mới hoạt động mà không giết người lần đầu. Đây cũng là nơi thích hợp để làm những việc như ngừng hoạt ảnh và những thứ khác mà tiêu thụ lượng CPU đáng chú ý để chuyển sang hoạt động tiếp theo nhanh nhất có thể hoặc đóng tài nguyên là quyền truy cập độc quyền như vậy như máy ảnh.
Tôi nghĩ rằng ấn tượng của bạn là sai, onActivityResult
được gọi trước khi onResume
và tài liệu dành onStop
tại http://developer.android.com/reference/android/app/Activity.html trong bảng sau biểu đồ chu kỳ hoạt động khẳng định
Được gọi là khi hoạt động là không còn hiển thị cho người sử dụng, vì một hoạt động khác đã được tiếp tục và bao gồm hoạt động này. Điều này có thể xảy ra vì một hoạt động mới đang được bắt đầu, một hoạt động hiện tại đang được đưa ra trước một hoạt động này, hoặc điều này đang bị phá hủy.
Vì vậy, onResume
trong A được gọi trước khi onStop
trong B được gọi.
- 1. Vòng đời hoạt động Android
- 2. Vòng đời đối tượng tĩnh của Android
- 3. Khi nào thì onActivityResult của fragment được gọi trong vòng đời của các mảnh vỡ?
- 4. Vòng đời hoạt động song song
- 5. Vòng đời thẻ JSP
- 6. Vòng đời nhiệm vụ
- 7. JUnit vòng đời
- 8. Vòng đời và dịch vụ ứng dụng Android
- 9. AsyncTask android với các hoạt động vòng đời
- 10. Vòng đời của singum dựa trên enum trên Android
- 11. Thử nghiệm vòng đời hoạt động của Android
- 12. Vòng đời của cookie phiên trong Android WebView/CookieSyncManager
- 13. android: khi nào sử dụng onStart(), onStop()?
- 14. OnActivityResult không hoạt động (Android)
- 15. Vòng đời sự kiện WinForms
- 16. Vòng đời Workerrole của Azure
- 17. HttpServlet vòng đời và serialization
- 18. Http Yêu cầu Vòng đời
- 19. vòng đời trang trong javascript
- 20. MVC4 và vòng đời trang?
- 21. Android - Trong khi chuyển đổi giữa hai hoạt động, thứ tự gọi vòng đời của hoạt động
- 22. ADF đối mặt với vòng đời khác với vòng đời của JSF như thế nào?
- 23. Android onActivityResult được gọi là đầu tiên
- 24. Vòng đời bộ điều khiển Rails
- 25. Vòng đời điều khiển ASP.NET MVC
- 26. Ủy quyền Vòng đời thuộc tính
- 27. Yêu cầu ASP.Net Vòng đời - Application_BeginRequest
- 28. Dừng ứng dụng bằng cách gọi các cuộc gọi lại vòng đời
- 29. Sự cố khi hiểu về vòng đời khi màn hình tắt và trên
- 30. Android onActivityResult. Biến thành viên đôi khi bị vô hiệu
Vui lòng chỉ ra trong tài liệu mà hành vi mong đợi của bạn được mô tả. – CommonsWare
"phương thức hoạt động của onStop B được gọi trước phương thức onActivityResult của hoạt động A" - đây là hành vi mặc định và điều này cũng được mong đợi. Ý kiến của bạn chống lại nó là gì? –
@CommonsWare: cũng không phải mọi thứ đều cần được ghi lại. Tôi tưởng tượng trước tiên tôi phải rời khỏi hoạt động B trước khi trở lại hoạt động A. Nó chỉ có vẻ hợp lý trong vấn đề đó. – learner