Tôi đang sử dụng SlidingMenu
để mở cả menu phải và trái. Tất cả đều hoạt động tốt, ngoại trừ việc tôi không thể tìm ra cách để bảo toàn trạng thái của các mảnh vỡ sau khi ứng dụng chưa được sử dụng trong ít nhất (~ 6) giờ.Các mảnh vỡ biến mất sau khi ứng dụng không được sử dụng trong vài giờ
Đây là cách tôi thiết lập đoạn trong một trong các menu của tôi:
if (savedInstanceState != null)
mContent = getSupportFragmentManager().getFragment(
savedInstanceState, "mContent");
if (mContent == null)
mContent = new SomeFragment();
setContentView(R.layout.content_frame);
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, mContent).commit();
Khi người dùng quay trở lại để ứng dụng sau một thời gian dài, một số các mảnh vỡ (hoặc đoạn với trái hoặc với menu bên phải) trở thành màu xám và mặc dù tôi biết và tôi thử giải pháp sau (ví dụ cho menu bên trái):
mLeftMenuFragment = new LeftMenuFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.sliding_menu_left_content_frame,
mLeftMenuFragment).commit();
nó không giúp ích gì.
Lưu ý rằng tôi cũng đã thử phương pháp commitAllowingStateLoss()
(thay vì commit()
) nhưng cũng không giúp ích gì.
Có thể hệ thống đã xóa ứng dụng của bạn. Nó sẽ được khởi động mới mà không có bất kỳ vấn đề (savedInstanceState nên null). Không giết các ứng dụng bằng tay (từ ddms, hoặc từ quản lý ứng dụng) có tác dụng tương tự? – kupsef
@kupsef Tôi vừa mới giết nó từ trình quản lý ứng dụng và nó đã lưu trạng thái mẫu một cách chính xác. – syntagma