package com.hjx.parent.rx; import android.content.Context; import android.os.Bundle; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.viewbinding.ViewBinding; import com.hjx.parent.fragment.BaseBindingFragment; import com.trello.rxlifecycle2.android.FragmentEvent; import io.reactivex.subjects.BehaviorSubject; public abstract class BaseRxFragment extends BaseBindingFragment implements ILifecycleFragment { private BehaviorSubject rxLifecycle = BehaviorSubject.create(); @Override public BehaviorSubject getRxLifecycle() { return rxLifecycle; } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); rxLifecycle.onNext(FragmentEvent.ATTACH); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); rxLifecycle.onNext(FragmentEvent.CREATE); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); rxLifecycle.onNext(FragmentEvent.CREATE_VIEW); } @Override public void onStart() { super.onStart(); rxLifecycle.onNext(FragmentEvent.START); } @Override public void onResume() { super.onResume(); rxLifecycle.onNext(FragmentEvent.RESUME); } @Override public void onPause() { super.onPause(); rxLifecycle.onNext(FragmentEvent.PAUSE); } @Override public void onStop() { super.onStop(); rxLifecycle.onNext(FragmentEvent.STOP); } @Override public void onDestroyView() { super.onDestroyView(); rxLifecycle.onNext(FragmentEvent.DESTROY_VIEW); } @Override public void onDestroy() { super.onDestroy(); rxLifecycle.onNext(FragmentEvent.DESTROY); } @Override public void onDetach() { super.onDetach(); rxLifecycle.onNext(FragmentEvent.DETACH); } }