Yoa*_*uet 4 android android-dialogfragment
由于DialogFragment用于我的主要活动,我仍然有问题。
我目前正在使用此代码将其删除:
FragmentTransaction transaction = getFragmentManager().beginTransaction();
Fragment frag = getFragmentManager().findFragmentByTag("LockDialog");
if(frag != null) {
transaction.remove(frag);
transaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
问题是,由于对话框有重复(意味着有时没有正确删除对话框),我仍然会崩溃。
所以我的问题是:删除 a 是正确的方法DialogFragment还是必须仅用于Fragments?
我必须一直使用该dismiss()方法吗?:
Fragment lockFragment = getFragmentManager().findFragmentByTag("LockDialog");
//If the dialog already exist, we dismiss it
if(lockFragment != null && lockFragment instanceof LockDialogFragment) {
LockDialogFragment lockDialog = (LockDialogFragment) lockFragment;
lockDialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud)
这是目前我在我的一个应用程序中最大的错误,所以我想在选择一个或另一个之前确定。
谢谢!
编辑:我刚刚意识到我当前的问题可能是由于提交可能会延迟这一事实,我会添加executePendingTransactions以查看它是否变得更好。但它仍然带来了另一个问题,如果对话框已被关闭,是否有必要调用 transaction.remove() ?使用dismiss()比使用交易更直接和安全吗?