我对在代码库中使用Lifecycle函数感兴趣。但是,我试图了解使用诸如isFinishing()之类的检查的区别,或者是否应该使用新的生命周期感知功能IE:
if(activity.getCurrentState().isAtLeast(Lifecycle.State.CREATED))
看看Google diagram,我们将在开始完成活动之前将状态从RESUMED更改为CREATED。如果允许使用生命周期感知功能,以这种方式进行的利弊是什么?
改变的想法:
private void hideDialog() {
if (mDialog != null && mDialog.isShowing() && !mActivity.isFinishing() && !mActivity.isDestroyed()) {
mDialog.dismiss();
}
}
类似于:
private void hideDialog() {
if (mDialog.isShowing() && Lifecycle.State.RESUMED.equals(mProcessLifecycleOwner.getLifecycle().getCurrentState())) {
mDialog.dismiss();
}
}
但是,我没有看到这样使用生命周期感知功能的任何示例。这样做的利弊是什么?