May*_*hta 9 android memory-leaks android-arrayadapter android-fragments android-activity
我有一个ListFragment,它将通过ArrayAdapter显示项目列表,我正在尝试处理配置更改(设备轮换)我觉得将活动上下文传递给Array Adapter可能会导致在轮换时重新启动Activity时出现内存泄漏并且保留ListFragment适配器,因为我正在使用setRetainInstance(true),有人可以告诉我,如果我的理解是真的吗?如果是这样,处理这个问题的最佳方法是什么.是的,我不想在我的适配器onDetach上取消它,并在重新创建片段视图后重复使用它.
public class DummyXListFragment extends RoboSherlockListFragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (adapter == null)
adapter = new DummyItemAdapter(getActivity(),
android.R.layout.simple_list_item_1, list);
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*ood 17
的Fragment将被保留(并且因此将不被垃圾收集).在Fragment将举行的适配器参考,适配器保持到活动的参考Context,所以是的,我相信,这将导致内存泄漏.
一个非常简单的解决方案是传递getActivity().getApplicationContext()给适配器构造函数.
| 归档时间: |
|
| 查看次数: |
12568 次 |
| 最近记录: |