2014-05-05 19 views
5

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ì.

+0

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

+0

@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

Trả lời

1

Tôi không chắc nhưng tôi nghĩ Sẽ tốt hơn khi lưu dữ liệu trạng thái trong SharredPreferences hoặc ở một nơi khác và sau đó tạo lại bằng tay. Tôi nghĩ rằng lưu Instance Nhà nước sử dụng tốt hơn cho nhanh chóng đi lại và chuyển tiếp hoặc luân chuyển và như vậy. Ai biết được những gì có thể xảy ra trong 6 giờ. Android có thể làm sạch ghi nhớ y hoặc cái gì khác. Bạn không kiểm soát nó. Đó là ý kiến ​​của tôi.

1

Tôi đoán rằng vấn đề không phải là với một mảnh, nhưng với nội dung bên trong nó. Bạn có bộ điều hợp cho nội dung của menu không? Kiểm tra xem nó (có thể đăng đoạn mã của đoạn của bạn và xem/bộ chuyển đổi tương ứng), có vẻ như sau khi bạn phát lại một đoạn, nó sẽ hiển thị cùng một khung nhìn không hợp lệ.

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