LifeCycleAware片段中的片段生命周期事件

8 android android-lifecycle android-fragments fragment-lifecycle

我有一个生命周期识别片段和一个LifecycleObserver

        public class MyFragment extends Fragment {
            @Override
            public void onCreate(@Nullable Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                new MyObserver(this);

            }

            @Nullable
            @Override
            public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
                return inflater.inflate(R.layout.activity_main, container, false);
            }
        }
Run Code Online (Sandbox Code Playgroud)

以下是我的Observer类,它记录了所有片段事件

        public class MyObserver implements LifecycleObserver {
            private static final String TAG = "MyObserver";
            public MyObserver(LifecycleOwner lifecycleOwner) {
                lifecycleOwner.getLifecycle().addObserver(this);
            }

            @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
            public void onCreate(){
                Log.d(TAG, "onCreate: ");
            }

            @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
            public void onPause(){
                Log.d(TAG, "onPause: ");
            }

            @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
            public void onDestroy(){
                Log.d(TAG, "onDestroy: ");
            }

            @OnLifecycleEvent(Lifecycle.Event.ON_START)
            public void onStart(){
                Log.d(TAG, "onStart: ");
            }

        }
Run Code Online (Sandbox Code Playgroud)

我想听一下片段特定的生命周期事件onDestroyView, onActivityCreated但是这些事件并不存在

Lifecycle.Event.它仅包含活动事件.我如何在观察者中监听片段事件

Bas*_*din 10

您可以观察片段的viewLifecycleOwner生命周期。

viewLifecycleOwner.lifecycle.addObserver(yourObserverHere)
Run Code Online (Sandbox Code Playgroud)

然后将片段的onDestroyView生命周期方法绑定到带@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)注释的方法。

请注意,片段viewLifecycleOwner仅在onCreateViewonDestroyView生命周期方法之间可用。

  • @Shalan93这取决于哪个生命周期,片段生命周期或片段的视图生命周期。 (4认同)

Vir*_*ker -6

片段生命周期

onCreateView()
Run Code Online (Sandbox Code Playgroud)

调用以创建与片段关联的视图层次结构。

onDestroyView()
Run Code Online (Sandbox Code Playgroud)

当与片段关联的视图层次结构被删除时调用。