jph*_*jph 17 android android-lifecycle android-fragments android-activity
在我的活动中,我经常使用这个成语:
@Override
public void onDestroy() {
super.onDestroy();
if (isFinishing() != true) return;
// do some final cleanup since we're going away for good
}
Run Code Online (Sandbox Code Playgroud)
片段有一个onDestroy()方法,但相当于isFinishing()什么?我应该getActivity().isFinishing()从片段中检查一下onDestroy()吗?
编辑添加:
以下是我在各种情况下得到的回调(按顺序),以及getActivity()返回null或非null,如果非null,则返回值getActivity().isFinishing():
场景#1: DialogFragment正在显示并且用户点击后退按钮(即需要释放引用):
onDismiss(): activity = non-null, finishing = false
onDestroy(): activity = non-null, finishing = false
Run Code Online (Sandbox Code Playgroud)
场景#2: DialogFragment正在显示并且父活动完成(即需要发布引用):
onDestroy(): activity = non-null, finishing = true
onDismiss(): activity = null, finishing = n/a
Run Code Online (Sandbox Code Playgroud)
场景#3: DialogFragment正在显示并且OS暂时销毁父活动(即不应该释放引用):
onDestroy(): activity = non-null, finishing = false
onDismiss(): activity = null, finishing = n/a
Run Code Online (Sandbox Code Playgroud)
kco*_*ock 14
片段有一个方法isRemoving(),当从Activity中删除片段时,该方法为true:
如果此片段当前正从其活动中删除,则返回true.这不是它的活动是否正在完成,而是它是否正在被从其活动中删除.
| 归档时间: |
|
| 查看次数: |
7864 次 |
| 最近记录: |