Tôi đọc rằng giữ lại phân đoạn bằng ui và tham chiếu trên các chế độ xem có thể gây rò rỉ bộ nhớ. Hơn tôi tạo ra ứng dụng thử nghiệm với mảnh mà tôi lưu trữ một số tài liệu tham khảo về quan điểm và thiết lập setRetaineInstance (true), nhưng một số xoay màn hình không gây ra bất kỳ rò rỉ. MAT nói rằng tôi chỉ có một ví dụ về hoạt động của phụ huynh. Tôi đang làm gì sai? Trong trường hợp nào giữ lại mảnh với ui có thể gây rò rỉ?Tại sao đề xuất không giữ lại đoạn với giao diện người dùng?
RetainInstanceActivity.java
public class RetainInstanceActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, RetainFragment.newInstance())
.commit();
}
}}
RetainFragment.java
public class RetainFragment extends Fragment {
private View mLogin;
private View mPassword;
private View ImageView;
public static RetainFragment newInstance() {
final RetainFragment fragment = new RetainFragment();
return fragment;
}
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(final LayoutInflater inflater,
final ViewGroup container, final Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_retain, container,
false);
mLogin = view.findViewById(R.id.login);
mPassword = view.findViewById(R.id.password);
ImageView = view.findViewById(R.id.img);
return view;
}
}
Bạn đã thấy điều này ở đâu? Ví dụ: – Kerry
[Ở đây] (http://stackoverflow.com/questions/13421945/retained-fragments-with-ui-and-memory-leaks?answertab=votes#tab-top). – Bracadabra