在super.method之前或在android中的super.method之后的逻辑是什么?

Mah*_*esh 6 methods android super

大家好我想问一下,如果我在super.onDestroyView()之前写了什么东西有什么区别; 并在super.onDestroyView()之后; 见下面的例子

在super.ondestoryview()之前删除片段;

@Override
    public void onDestroyView() {

        try {
            Fragment fragment = (getFragmentManager()
                    .findFragmentById(R.id.mapviews));
            FragmentTransaction ft = getActivity().getSupportFragmentManager()
                    .beginTransaction();
            ft.remove(fragment);
            ft.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
        super.onDestroyView();
    }
Run Code Online (Sandbox Code Playgroud)

在super.ondestoryview()之后删除片段;

@Override
    public void onDestroyView() {
        super.onDestroyView();
        try {
            Fragment fragment = (getFragmentManager()
                    .findFragmentById(R.id.mapviews));
            FragmentTransaction ft = getActivity().getSupportFragmentManager()
                    .beginTransaction();
            ft.remove(fragment);
            ft.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
Run Code Online (Sandbox Code Playgroud)

Leo*_*dos 7

如果 super 是 Fragment,那么你怎么做就没有区别了,因为 Fragment 的 onDestroyView 什么都不做。但在某些情况下,这很重要。

正如黛安娜·哈克伯恩所说:

一般规则:在任何类型的初始化期间,让超类先完成它们的工作;在任何类型的定稿过程中,您首先要完成工作

PS 恕我直言,从其他片段的 onDestroyView 方法中删除片段不是一个好的解决方案。这很奇怪,我认为你应该找到更好的地方来管理你的碎片......