Tất cả các nguồn tôi đã đọc đều đề cập đến vài trường hợp và kết thúc bằng "một vài trường hợp khác". TẤT CẢ các trường hợp khi phương thức onSaveInstanceState được gọi trong Chế độ xem/Hoạt động?Khi nào TẤT CẢ các trường hợp khi phương thức onSaveInstanceState() được gọi?
Trả lời
Các doc nói
Phương pháp này được gọi trước khi một hoạt động có thể bị giết chết để khi nó quay trở lại một thời gian trong tương lai nó có thể khôi phục trạng thái của nó.
Phương pháp này đã không gọi khi người dùng ép "trở lại" nút, đây là một trong những trường hợp đó ..
onSaveInstanceState được gọi khi hoạt động bao giờ được ra khỏi veiw .. như khi u nhấn phím nhà, onSaveInstanceState được gọi.
Bất cứ khi nào có hoạt động giết chết mềm hoạt động. I.e khi định hướng thay đổi hoặc khi quá trình bị giết bởi android do bộ nhớ thấp.
Nó không được gọi khi người dùng cố tình chỉ điều hướng khỏi hoạt động.
Tham khảo link này: https://sites.google.com/site/jalcomputing/home/mac-osx-android-programming-tutorial/saving-instance-state
onSaveInstanceState() sẽ được gọi theo mặc định cho một cái nhìn nếu nó có một id.
google cho biết: "Triển khai mặc định sẽ quản lý hầu hết trạng thái giao diện người dùng cho mỗi bạn bằng cách gọi onSaveInstanceState() trên mỗi chế độ xem trong cấu trúc phân cấp có id".
Thông tin thêm here.
Mặc dù đây là thông tin chính xác nhưng nó không trả lời được câu hỏi. – Jazzer
Cũng lưu ý rằng onSaveInstanceState
có thể được gọi vào một mảnh trực tiếp sau khi onCreate
(onCreateView
, onActivityCreated
, onStart
, và onResume
sẽ KHÔNG được gọi là), nếu các mảnh được gắn vào một hoạt động nhưng không được hiển thị, sau đó bị phá hủy. Vì vậy, bạn cần phải chắc chắn rằng tất cả mọi thứ bạn tham khảo trong onSaveInstanceState
được khởi tạo trong onCreate
, nếu không bạn có nguy cơ một NullPointerException
.
- onSaveInstanceState() được gọi khi có thay đổi hướng hoặc người dùng nhấn nút trang chủ.
- Nếu có một hoạt động khác trước hoạt động và hệ điều hành giết hoạt động ẩn để giải phóng bộ nhớ (hoặc khi cần thiết ở nơi khác), thì onSaveInstanceState() được gọi để hoạt động có thể lưu thông tin trạng thái của nó được khôi phục bằng cách sử dụng onRestoreInstanceState() khi người dùng bắt đầu hoạt động đó vào lần tiếp theo.
- Chế độ xem mặc định của Android lưu trạng thái của chúng qua cuộc gọi tới Chế độ xem.onSaveInstanceState được khôi phục bằng việc thực hiện mặc định của onRestoreInstanceState
Theo doc
Nếu người dùng tương tác với một hoạt động và nhấn nút Back hoặc nếu phương pháp kết thúc() của một hoạt động được gọi là , hoạt động là bị xóa khỏi ngăn xếp hoạt động hiện tại và được tái chế. Trong trường hợp này không có trạng thái mẫu để lưu và phương thức onSaveInstanceState() không được gọi.
Nếu người dùng tương tác với một hoạt động và nhấn nút Home, trạng thái thể hiện hoạt động phải được lưu. Phương thức onSaveInstanceState() được gọi. Nếu người dùng khởi động lại ứng dụng, nó sẽ tiếp tục hoặc khởi động lại hoạt động mới nhất. Nếu nó khởi động lại hoạt động, nó cung cấp gói với lưu dữ liệu vào các phương thức onRestoreInstanceState() và onCreate().
Nếu bạn ghi đè onSaveInstanceState() và onRestoreInstanceState() bạn nên gọi việc thực hiện siêu của nó, bởi vì các quan điểm mặc định của Android lưu trữ dữ liệu của họ thông qua một cuộc gọi đến View.onSaveInstanceState từ onSaveInstanceState() phương pháp của Hoạt động. Ví dụ: EditText lưu trữ nội dung của nó thông qua cuộc gọi mặc định của phương thức này.
- 1. Gọi phương thức Sau khi tất cả SpringBeans và ApplicationContext đã được khởi tạo
- 2. Khi nào thì phương thức getView() của ListView được gọi?
- 3. Phương thức nào được gọi khi một QGraphicsItem được chọn
- 4. JPA @Các trường chuyển tiếp bị xóa trước khi phương thức @PreUpdate được gọi là
- 5. Phương thức layoutSubviews được gọi là khi nào?
- 6. mySQL trả về tất cả các hàng khi trường = 0
- 7. có được tất cả các phương thức của một lớp hoặc trường hợp khách quan-c không?
- 8. Gọi phương thức mỗi lần trước khi bất kỳ phương pháp nào khác được gọi là
- 9. Khi nào gọi phương thức Dispose() trong ứng dụng WPF
- 10. Khi hoạt ảnh, cách gọi lại chỉ khi tất cả các thành phần được thực hiện?
- 11. Cách bỏ qua ghi đè của phương thức khi tìm kiếm tất cả các tham chiếu
- 12. ném RuntimeException khi gọi phương thức chưa được khóa
- 13. Khi phương thức AppInitialize được gọi trong ASP.NET?
- 14. Tất cả các thông số này khi gọi một phương thức web WCF từ Anguilla JavaScript có nghĩa là gì?
- 15. Phương thức lớp hoạt động khác khi được gọi là phương thức thể hiện?
- 16. Khi nào ServiceConnection.onServiceDisconnected() được gọi?
- 17. Phân đoạn không gọi onSaveInstanceState khi vuốt ViewPager?
- 18. Gọi phương thức khi chuỗi kết thúc
- 19. Dưa chuột: Trước khi móc chỉ chạy một lần cho tất cả các trường hợp
- 20. Destructor không được gọi khi trở về một trường hợp địa phương
- 21. Angularjs: Tìm tất cả các trường hợp của chỉ thị
- 22. Chụp tất cả các phương thức/cuộc gọi tin nhắn trên một đối tượng
- 23. Khi nào tôi phải gọi phương thức startup() của các widget đã được lập trình?
- 24. Khi nào viewDidLoad được gọi?
- 25. Khi tất cả các lĩnh vực trước đây được làm đầy, thêm trường nhập mới
- 26. Ẩn tất cả các bộ điều khiển xem phương thức
- 27. Phương thức hoạt động nào được gọi trước?
- 28. Trường hợp ngoại lệ không truyền từ lời gọi phương thức được phản ánh trong C#
- 29. Khi nào phương thức call() được gọi trong Java Executor khi sử dụng các đối tượng Callable?
- 30. Tkinter Python tắt nút cho đến khi tất cả các trường được điền
Nó không được gọi là _every_ thời gian hoạt động rời khỏi chế độ xem. Giống như khi người dùng nhấn trở lại để rời khỏi hoạt động. – Jazzer