2013-04-23 25 views
9

Các docs liên quan đến trạng thái Activity giải trí:là "thẻ" của chế độ xem được khôi phục khi hoạt động có bố cục chứa chế độ xem được tạo lại không?

Theo mặc định, hệ thống sử dụng tình trạng dụ Bundle để lưu thông tin về mỗi Xem đối tượng trong cách bố trí hoạt động của bạn (chẳng hạn như giá trị text đã nhập vào một đối tượng EditText) . Vì vậy, nếu hoạt động của bạn phiên bản bị hủy và được tạo lại, trạng thái của bố cục là được khôi phục về trạng thái trước đó mà không cần mã do bạn yêu cầu.

Các docs cho View.setTag (Object) nhà nước:

Thiết lập thẻ được kết hợp với quan điểm này. Thẻ có thể được sử dụng để đánh dấu chế độ xem trong cấu trúc phân cấp của nó và không nhất thiết phải nằm trong phân cấp . Thẻ cũng có thể được sử dụng để lưu trữ dữ liệu trong chế độ xem mà không cần sử dụng cấu trúc dữ liệu khác.

Câu hỏi của tôi là: nếu tôi đặt thẻ trên Chế độ xem (có id duy nhất) trong bố cục hoạt động của tôi và sau đó hoạt động sẽ bị hệ thống hủy và sau đó được tạo lại, chế độ xem đó, khi được tạo lại , tự động được gắn thẻ với đối tượng mà tôi đã thiết lập ban đầu?

+0

Chưa thử nhưng về mặt kỹ thuật, nó sẽ không có ý nghĩa nhiều. 'Object' có thể là bất cứ thứ gì và nó sẽ tự tử để hệ thống khôi phục một tham chiếu đến một Object mà nó không có quyền kiểm soát (nó không thể được bao gồm trong Bundle, không rõ liệu một bản sao nông có ý nghĩa không , vv), –

+0

Hệ thống dự kiến ​​sẽ tạo lại hoạt động vào một số ngày sau đó, vì vậy tôi có thể thấy nó giữ xung quanh tham chiếu đến thẻ gốc. Tôi sẽ kiểm tra hành vi và báo cáo lại. Sẽ được tốt đẹp nếu điều này đã được ghi nhận. – jph

+0

Hãy cho tôi biết về điều đó. ;) BTW, thuộc tính 'visibility' sẽ _not_ được lưu trữ trong khi nhiều thuộc tính khác được lưu trữ. - Nó là một 'int' hay gì đó, tôi nói ổn, nhưng tham chiếu' Object' sẽ không hợp lệ khi thời gian hoạt động được tạo lại. Nhưng tôi tò mò những gì bạn sẽ tìm ra. –

Trả lời

5

nếu tôi đặt thẻ trên Chế độ xem (có id duy nhất) trong bố cục hoạt động và sau đó hoạt động sẽ bị hệ thống hủy và sau đó được tạo lại, chế độ xem đó sẽ tự động được gắn thẻ với Object mà tôi đã thiết lập ban đầu?

Không, dựa trên việc đọc mã nguồn của tôi.

Hệ thống dự kiến ​​sẽ tạo lại hoạt động vào một số ngày sau đó, vì vậy tôi có thể thấy nó giữ xung quanh tham chiếu đến thẻ gốc.

Điều đó không phải lúc nào cũng có thể, vì trạng thái đã lưu Bundle cần phải được chuyển qua các ranh giới quy trình.

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