Câu trả lời cơ bản:.
Chúng chỉ hữu ích khi triển khai onSaveInstanceState() và khôi phục trạng thái đó trong onCreate(). Nếu bạn không thực hiện onSaveInstanceState(), bạn có thể quên các phương thức này và giả vờ như chúng không tồn tại.
Sự cố mà họ đang giải quyết: nếu bạn muốn lưu tham chiếu đến một đoạn trong "trạng thái mẫu đã lưu", bạn không thể chỉ đặt tham chiếu đối tượng vào đó. Đầu tiên, vì bạn không thể đặt đối tượng đơn giản trong một Bundle. :) Và lý do cho điều này là điểm của trạng thái đã lưu đó là để nó được sao chép ra khỏi quá trình của bạn, vì vậy nếu quá trình của bạn cần phải bị giết, sau này nó có thể được sao chép lại vào một quy trình mới để bạn - khởi tạo hoạt động/đoạn của bạn từ. Một đối tượng thô chỉ có ý nghĩa trong bối cảnh của quá trình đang chạy, vì vậy không thể sao chép chính xác tham chiếu đến một đối tượng như vậy trong quá trình hiện tại của bạn và sang một đối tượng khác. Vì vậy, những gì putFragment()/getFragment() làm là đặt một đoạn dữ liệu trong Bundle đã cho, có thể xác định phân đoạn đó qua một thể hiện mới của hoạt động/đoạn của bạn trong một tiến trình khác. Chính xác những gì đại diện này là, không được xác định, nhưng trong thực hiện hiện tại nó là định danh số nguyên nội bộ cho đoạn đó, sẽ được sử dụng sau này khi FragmentManager cần tái tạo phân đoạn đó từ trạng thái đã lưu trước đó ... được tạo lại với cùng một định danh đó, vì vậy khi bạn gọi getFragment() nó có thể lấy ra số nguyên, và sử dụng nó để xác định đối tượng Fragment chính xác để quay trở lại người gọi tương ứng với người đã lưu trước đó.
Tôi biết rằng 'putFragment' sẽ được sử dụng kết hợp với' onSaveInstanceState' để duy trì một tham chiếu đến đoạn nếu hoạt động này bị phá hủy trên nói một sự thay đổi định hướng hoặc nếu hệ điều hành cần phải đòi lại bộ nhớ, với mảnh được lấy ra trong nói 'onCreate (...)'.Điều cần biết là ví dụ về thời điểm bạn có thể muốn duy trì tham chiếu. Tôi vừa hoàn thành một dự án cảng mảnh mà tôi chưa bao giờ làm điều này, mặc dù có lẽ tôi nên có. – PJL
Tôi đã có bố cục ngăn kép cho cả cảnh quan và chân dung mà các hoạt động được tạo lại trên thay đổi hướng. Về những thay đổi định hướng, các mảnh của tôi được tái tạo và nạp vào các thùng chứa của chúng, như đã đề cập ở trên, tôi không tìm thấy nhu cầu sử dụng 'put | getFragment' để bất kỳ ví dụ hay về thời điểm sử dụng sẽ tốt. – PJL
Kiến trúc vô cùng ngu ngốc của android đang giết chết tôi ... – syloc