2011-01-18 66 views
6

Tôi chỉ đọc về việc duy trì trạng thái ứng dụng Android của mình và vấp ngã khi onRetainNonConfigurationInstance. Nhưng khi đọc số documentation Tôi nhận thấy câu này:Tôi có nên triển khai onRetainNonConfigurationInstance không?

Chức năng này được gọi hoàn toàn là tối ưu hóa và bạn không phải dựa vào nó được gọi.

Vì vậy, tôi tự hỏi: khi nào thực sự có ý nghĩa khi sử dụng phương pháp này. Nếu tôi không thể dựa vào nó được gọi là, tôi cần một cơ chế khác để chuyển giao nhà nước anyway (mà trong trường hợp của tôi sẽ là một số serialization). Vì vậy, trừ khi tôi gặp bất kỳ lần truy cập hiệu suất nào, có bất kỳ lý do nào khiến tôi nên sử dụng onRetainNonConfigurationInstance không?

Nếu nó được đảm bảo sẽ được gọi, tôi rất muốn sử dụng nó, nhưng nếu không, nó có vẻ khá vô dụng.

Tôi có thiếu gì đó không? Khi nào bạn sử dụng phương pháp này? Làm thế nào bạn sẽ giữ một kết nối mạng hoặc những thứ như thế?

Cảm ơn!

Trả lời

12

Ý nghĩa của tài liệu là có các trường hợp khi Hoạt động sẽ không được tạo lại ngay lập tức, trong trường hợp này onRetainNonConfigurationInstance() sẽ không được gọi. Bạn không thể sử dụng phương pháp này để lưu trữ dữ liệu. Nó chỉ được sử dụng để truyền các đối tượng đắt tiền để tạo ra trong khi thay đổi cấu hình.

+0

ahh, nghe hay đấy! Vì vậy, tôi có thể sử dụng nó để thay đổi định hướng và dựa vào nó được gọi trong trường hợp này, phải không? – Philipp

+1

Điều này đến trễ, nhưng với bất kỳ ai muốn biết thêm chi tiết về điều này, tôi khuyên bạn nên đọc phản hồi CommonsWare tại đây: http://stackoverflow.com/questions/4285877/which-one-to-use-onsaveinstancestate-vs-onretainnonconfigurationinstance –

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