小编Cha*_*Nan的帖子

避免android片段中内存泄漏的最佳方法是什么

我找到了很多方法来避免 android fragment 中的内存泄漏,但哪个是最好的方法?

1.调用onDestroyView时设置view为null

public class LeakyFragment extends Fragment{

    private View mLeak; // retained

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mLeak = inflater.inflate(R.layout.whatever, container, false);
        return mLeak;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        mLeak = null; // now cleaning up!
    }
}
Run Code Online (Sandbox Code Playgroud)

2.设置所有子视图=null并移除视图

    @Override
    public void onDestroyView(){
        super.onDestroyView();
        unbindDrawables(mLeak);
    }

    private void unbindDrawables(View view){
        if (view.getBackground() != null){
            view.getBackground().setCallback(null);
        }
        if (view instanceof ViewGroup && …
Run Code Online (Sandbox Code Playgroud)

android memory-leaks fragment

6
推荐指数
1
解决办法
8805
查看次数

标签 统计

android ×1

fragment ×1

memory-leaks ×1