我有一个生命周期感知 fragment 和一个 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);
}
}
以下是我的 Observer 类,它记录所有 fragment 事件属性
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: ");
}
}
我想监听 fragment 特定的生命周期事件,例如 onDestroyView
和 onActivityCreated
但这些事件不在
Lifecycle.Event
。它仅包含 Activity 事件。我如何在我的观察者中监听 fragment 事件
最佳答案
您可以观察 fragment 的viewLifecycleOwner
生命周期。
viewLifecycleOwner.lifecycle.addObserver(yourObserverHere)
然后 fragment 的 onDestroyView
生命周期方法绑定(bind)到 @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
注释方法。
请注意, fragment 的 viewLifecycleOwner
仅在 onCreateView
和 onDestroyView
生命周期方法之间可用。
关于android - LifeCycleAware Fragment 中的 fragment 生命周期事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47091794/