DialogFragments和Dialogs Android

时间:2017-02-04 11:11:16

标签: android

我可以阅读的任何地方:到处使用FragmentDialog,因为它可以独立于Activity生命周期。但是,通常,对话框经常应该异步显示。但是,不鼓励从异步回调中提交FragmentManager。怎么处理呢?

1 个答案:

答案 0 :(得分:0)

一定要使用DialogFragment,因为正如您所提到的,它有助于保持您的活动与对话松散耦合。是的,有些情况下您可能需要异步显示对话。在这种情况下,您需要做的是将对话调用代码与主机组件上的方法调用一起包装,告诉您在此实例中显示对话是否安全。

如果您在活动中呼叫show,请将调用包装为 -

if(!isDestroyed() && !isFinishing())

如果您在片段中调用show,请将调用包装为 -

if (isResumed() && !isRemoving())

这或多或少会解决在不一致的UI状态下登陆的问题