Câu trả lời:
Các mảnh vỡ không có onRestoreInstanceState
phương thức.
Bạn có thể đạt được kết quả tương tự onActivityCreated
khi nhận được một gói có trạng thái phiên bản đã lưu (hoặc null).
Kiểm tra mã nguồn tại đây .
Tôi biết, bạn đã chấp nhận câu trả lời, nhưng bạn nên đọc tài liệu chính thức về các đoạn và có nội dung (đoạn "Xử lý Vòng đời của Mảnh"):
Bạn có thể giữ lại trạng thái của một phân mảnh bằng cách sử dụng Gói, trong trường hợp quá trình của hoạt động bị hủy và bạn cần khôi phục trạng thái phân mảnh khi hoạt động được tạo lại. Bạn có thể lưu trạng thái trong quá trình gọi lại onSaveInstanceState () của phân mảnh và khôi phục nó trong khi onCreate (), onCreateView () hoặc onActivityCreate ()
Vì vậy, bạn có thể sử dụng bộ quần áo mà bạn tốt nhất: onCreate()
, onCreateView()
, hoặconActivityCreated()
Trong ví dụ về ListFragment của hướng dẫn Fragment, bạn có thể tìm thấy:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Bạn có thể sử dụng như thế này:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated()
được gọi sau khi phân mảnh quay trở lại từ ngăn xếp.
onViewStateRestored
của Fragment
là tương đương với onRestoreInstanceState
của Activity
. Nhưng nó được gọi sau onActivityCreated(Bundle)
và trước onStart()
.