Ok, vì vậy tôi đọc về cách Android xử lý "thay đổi cấu hình" - bằng cách hủy Hoạt động đang hoạt động.cấu hình đã thay đổi (thay đổi định hướng) và phá hủy Hoạt động - đây có phải là cách mà nó được cho là hoạt động không?
Câu hỏi đầu tiên Tôi thực sự muốn biết từ Nhóm Android - tại sao? Tôi sẽ đánh giá cao một cách giải thích về cách thức lý luận đã xảy ra, vì tôi không hiểu nó =)
Trong mọi trường hợp, thực tế là hành động theo cách đó khiến tất cả chúng ta thấy như thế, trong một thế giới đau đớn.
Giả sử bạn có Hoạt động trình bày một số EditText: s, hộp kiểm, v.v. Nếu Người dùng bắt đầu điền biểu mẫu đó với văn bản/dữ liệu và sau đó thay đổi hướng (hoặc nhận Phonecall), thì tất cả đều nhập Người dùng đã biến mất. Tôi havent tìm thấy bất kỳ cách nào để bảo tồn nhà nước. Điều đó buộc chúng tôi phải viết mã cực kỳ đau đớn để không mất tất cả dữ liệu. Như tôi thấy, bạn cần một lớp "không hoạt động" khác (hoặc "giá trị giữ" lớp có lẽ) có một trường cho mỗi "phần tử biểu mẫu" (EditText, hộp kiểm, v.v ...).
Đối với mỗi "phần tử biểu mẫu" tồn tại, bạn cần phải đính kèm Sự kiện như "onChanged" (hoặc onTextChanged hoặc một cái gì đó tương tự) cập nhật trường tương ứng trong lớp "giữ giá trị" chắc chắn rằng đối với mỗi ký tự đơn bạn nhập (trong EditText chẳng hạn) sẽ được lưu cùng một lúc.
lẽ bạn có thể sử dụng một số người nghe (như "onDestroy" hoặc một cái gì đó) và sau đó điền vào lớp giá trị gia nắm giữ với dữ liệu ...
Tôi cũng đã tìm thấy this piece of info nơi họ nói về việc sử dụng Bundle, onSaveInstanceState và onRestoreInstanceState, nhưng điều đó cũng có nghĩa là lập trình viên phải lưu thủ công và sau đó đặt lại các giá trị vào đúng vị trí? Cách tiếp cận này hơi lộn xộn hơn các đề xuất của tôi ở trên, nhưng vẫn không đẹp lắm ...
Bây giờ, ai đó có thể nói với tôi rằng tôi hoàn toàn sai và rằng đây không phải là cách hoạt động và tôi đã bỏ lỡ một số thông tin quan trọng? ;-)
Kính trọng
Khung tự động xử lý lưu và khôi phục một số trạng thái; phần còn lại bạn phải tự làm trong các phương thức như 'onPause' và' onResume'. Tôi biết rất khó để có được đầu của bạn xung quanh lúc đầu, nhưng bạn thực sự cần phải biết vòng đời của một Hoạt động: http://developer.android.com/guide/topics/fundamentals.html#actlife Thay đổi cấu hình như xoay màn hình cần phải bắt đầu lại vì họ phải bố trí lại hoàn toàn màn hình. Tôi chắc chắn một người khác sẽ đến và để lại một câu trả lời đúng đắn. :) –
Câu trả lời hàng đầu trong câu hỏi trước bạn đã liên kết để tổng hợp nó khá tốt. Cách dễ nhất để xem những gì là hoặc không được lưu trong khi quay hoặc một cuộc gọi điện thoại, vv là để thử nó trong giả lập! –
Tôi không hiểu lý do tại sao bố cục lại có bất kỳ điều gì liên quan đến dữ liệu chứa trong Chế độ xem. Nhóm Android - và mọi người khác - luôn luôn nói về tầm quan trọng của việc phân tách GUI và mã. Vậy tại sao không chỉ vẽ lại nội dung và giữ dữ liệu? Có một gợi ý như vậy ở đây: http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android Ông đề nghị ghi đè lên onConfigurationChanged và sau đó chỉ làm setContentView, bỏ qua onCreate ... – Ted